557. Reverse Words in a String III
来源:互联网 发布:pyqt4安装 linux 编辑:程序博客网 时间:2024/05/24 03:49
Input: “Let’s take LeetCode contest”
Output: “s’teL ekat edoCteeL tsetnoc”
以不带空格的连续字符串作为字符反转的单位。为了均一处理每个字符串片段,把结尾字符多加了一个空格,最后又去掉了。i的作用是找到第一个字符串片段,或者每个空格后面的第一个字符串片段。j的作用是找到结束的位置。后来发现这种方法很冗余,下次直接让i=j-1就好了。
char* s;
reverse(s,s+5);则是将s[0]~s[4]这5个字符反转。
class Solution {public: string reverseWords(string s) { int i,j,len=s.length(); s[len]=' '; s[len+1]='\0'; for(i=0;i<=len;i++) { if(i==0||s[i]==' ') { for(j=i;j<len&&s[j+1]!=' ';j++) {} if(i==0) reverse(s.begin()+i,s.begin()+j+1); else reverse(s.begin()+i+1,s.begin()+j+1); } } s[len]='\0'; return s; }};
大神们的解法果然是优雅:
原本i=j-1,为了在for中i++之后直接跳到下个字符串开头。但是其实改成i=j少一次i++,更方便。
class Solutinon {public: string reverseWords(string s) { for(int i=0;i<s.length();i++) { if(s[i]!=' '){ int j=i; for(;j<s.length()&&s[j]!=' ';j++){} reverse(s.begin()+i,s.begin()+j); i=j; } } return s; }};
阅读全文
0 0
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- 557. Reverse Words in a String III
- js时间戳与时间的相互转化
- iOS开发之opencv学习笔记二:使用CascadeClassifier进行对特定物体的跟踪
- Macos解决安装pip,python,scrapy,项目安装的若干问题方法
- js处理页面内部嵌套问题
- oracle数据库数据泵导入相关总结
- 557. Reverse Words in a String III
- 复习
- Ajax
- 树状数组BIT
- 7天学会spring cloud
- 线程
- ELF 文件中的section 和 segment
- 多路复用IO&select&poll
- Vitual在继承中修饰成员函数