LeetCode---Reverse Words in a String
2015-11-23 20:26
309 查看
题目大意:给出一个由若干单词和空格组成吃的字符串,要求将其包含的所有单词的顺序倒转并且去掉冗余空格。
算法思想:
字符串中的字符可以看做是有空格和非空格组成的。当遍历字符串时如果遇见空格时此时判断是否是上个单词的结束,如果是将其迭代加入结果中,如果不是则继续遍历字符串,当遇见非空格符时将其拼接入单词并做标记。最后如果标记为真将最后一个单词加入结果中,然后去掉末尾的空格符。
代码如下:
算法思想:
字符串中的字符可以看做是有空格和非空格组成的。当遍历字符串时如果遇见空格时此时判断是否是上个单词的结束,如果是将其迭代加入结果中,如果不是则继续遍历字符串,当遇见非空格符时将其拼接入单词并做标记。最后如果标记为真将最后一个单词加入结果中,然后去掉末尾的空格符。
代码如下:
class Solution { public: void reverseWords(string &s) { if(s.length()==0) return ; string temp,res=""; bool flag=false; for(int i=0;i<s.length();++i){ if(s[i]==' '){ if(flag) { temp+=' '; res=temp+res; temp.clear(); flag=false; } else continue; } else{ temp+=s[i]; flag=true; } } if(flag){ temp+=' '; res=temp+res; } s=res.substr(0,res.size()-1); } };
相关文章推荐
- 斯坦福大学机器学习-有关与过拟合问题
- [leetcode] 282. Expression Add Operators
- lua 多继承实现
- RBT
- c变量声明问题
- 阅读笔记:软件需求十步走(三)
- Effective C++读书笔记一
- 什么是过拟合问题,怎么样避免.
- 解决oracle重启后出现无法连接问题
- 汉诺塔IV
- 如果处理vim产生的swp文件 以及diff功能的使用
- 利用第三方服务平台实现简单的短信验证功能
- linux挂载windows上的共享文件夹
- python requests库学习
- 有效需求分析阅读笔记三
- 阅读笔记:软件需求十步走(二)
- UITableviewcell的删除操作
- 解决音频,视频的方案
- 华为oj 字符逆序
- MPI学习-聚合通信