42翻转单词顺序列+注意该题找单词的方法
题目描述
class Solution { public:void helper(string &str,int start,int end){for(start,end;start < end;++start,--end){swap(str[start],str[end]);}}string ReverseSentence(string str) {if(str.size() == 0){return "";}helper(str,0,str.size() - 1);int start = 0,end = 0;while(str[start] != '\0'){if(str[start] == ' '){++start;}else if(str[end] == ' ' || str[end] == '\0'){helper(str,start,end - 1);start = end;++end;}else{++end;}}return str;} };
这道题目还有进一步的变式题,就是两个单词之间有很多空格,最后只输出一个空格,这题的话,可以使用istringstream in(string),然后自己依据空格分割每一个单词,存储到一个数组里面,再从最后一个单词开始开始拼接,就得到了结果。
class Solution { public:/*** @param s : A string* @return : A string*/string reverseWords(string s) {// write your code hereif (s.size() < 2) {return s;}istringstream ss(s);string tmp, result;vector<string> no_space;while (ss >> tmp) {no_space.push_back(tmp);}if(no_space.size() == 0){return " ";}int i;for (i = no_space.size() - 1; i > 0; --i) {result.append(no_space[i]);result.append(" ");}result.append(no_space[i]);return result; } };
转载于:https://www.cnblogs.com/dingxiaoqiang/p/8207244.html
42翻转单词顺序列+注意该题找单词的方法相关推荐
- 【剑指offer{40-44}】和为S的连续正数序列、和为S的两个数字、左旋转字符串、翻转单词顺序列、扑克牌顺子
文章目录 和为S的连续正数序列 题目描述 C++代码 和为S的两个数字 题目描述 C++代码 左旋转字符串 题目描述 C++代码 翻转单词顺序列 题目描述 C++代码 扑克牌顺子 题目描述 C++代码 ...
- [剑指offer]面试题42:翻转单词顺序 VS左旋转字符串
面试题42:翻转单词顺序 VS左旋转字符串 题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a st ...
- 【剑指offer-Java版】42翻转单词顺序VS左旋转字符串
反转单词顺序以及左旋转字符串:输入一个英文句子,翻转句子中的单词顺序,单词内部的字母顺序是不变的 – I am a student. -> student. am I 第一步,翻转句子中的所有字 ...
- 数据结构与算法--翻转单词顺序
翻转单词顺序 题目:输入一个英文句子,翻转句子中的单词顺序,但是单词内的字符顺序不变,例如:I am a software engineer -> engineer software a am ...
- 编程小练习:最大公约数,字符串反序输出,全排列,不用加减法求和,字符串内容反序,字符串中最长数字串,数组是否递增,数组反转,链表反转,翻转单词顺序
最大公约数 --- 递归.非递归 #include <stdio.h>int gcd(int a, int b); int gcd_recursive(int a, int b);int ...
- LeetCode-剑指 Offer 58 - I. 翻转单词顺序
剑指 Offer 58 - I. 翻转单词顺序 思路一:也是核心思想,就是先把句子中所有字符串取出放入字符串数组,再对数组中的字符串进行操作后重新连接即可,具体问题具体细节还需要按题目要求分析 而遍历 ...
- 7-59 翻转单词顺序 (20 分)
7-59 翻转单词顺序 (20 分) 给定一个字符串,翻转该字符串,翻转时单词中的字符顺序不变.例如,如果字符串为"Hello World",则翻转后为"World He ...
- 【LeetCode】剑指 Offer 58 - I. 翻转单词顺序
[LeetCode]剑指 Offer 58 - I. 翻转单词顺序 文章目录 [LeetCode]剑指 Offer 58 - I. 翻转单词顺序 一.双指针 一.双指针 算法解析: 倒序遍历字符串 s ...
- 剑指 Offer 58 - I. 翻转单词顺序 (双指针)
剑指 Offer 58 - I. 翻转单词顺序 题意: 翻转一个英文句子中单词顺序 解法1 思路: split分割 + 倒序 public static String reverseWords(Str ...
最新文章
- hdu 4460 friend chains spfa 最短路里面的最长路
- pyrealsense2 设置摄像头曝光值 get_active_profile.get_device().query_sensors set_option() rs.option.exposure
- ThreadPoolExecutor线程池 + Queue队列
- 论文浅尝 | ICLR 2020 - 一文全览知识图谱研究
- postgresql cast转换类型
- 2013-2018卷积神经网络中十个最重要的概念与创新
- 金士顿U盘DT100G3-2014年款与2019年款对比
- 图像质量评价函数SSIM介绍
- linux 查看文件内容的命令
- Docker 安装 Elasticsearch 7.12.1
- 百度竞价开户需要什么资料,竞价开户流程
- 证件照蓝底变白底的方法
- WCF技术剖析之十五:数据契约代理(DataContractSurrogate)在序列化中的作用
- Linux设置超级用户密码
- 如何学计算机打字,如何学习最快的电脑打字如何为电脑新手快速学习打字
- Android 仿朋友圈,文字图片视频多条目,自动播放暂停
- 卸载电脑右下角闪烁的游戏图标的教程
- 【云驻共创】华为云云原生之Kubernetes网络架构原理深度剖析(上)
- 输入圆的半径,求面积
- Newtonsoft解析Json文件
热门文章
- centos上传文件oracle,CentOS下启用Oracle ACFS步骤
- Bochs调试及相关仿真工具的使用方法
- EL表达式 (详解)
- ListView通过自定义适配器来显示数据并对Item项以及子view项的控件实现监听.
- 汇编语言--单步中断
- const、static型数据在内存中如何存储?(变量存放位置)
- 解释i节点在文件系统中的作用?超级块作用?
- mybaits二十七:spring, spring mvc,mybatis(ssm) 整合
- jvm二:类加载,连接,初始化
- web前端开发--列表