leetcode-151-reverse word in a string
Posted sunshineboy1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-151-reverse word in a string相关的知识,希望对你有一定的参考价值。
思路:
1.对空格进行消除处理(有些地方存在空格很多的情况)
2.对每一个字符串进行翻转 reverse( )
3.将字符串叠加到K上,最终k个字符串组成一个字符串组
4.删除多余的空字符erase(s.begin()+k,s.begin())
5.在翻转一次
代码:
class Solution {
public:
string reverseWords(string s) {
//两次翻转
int k=0;
for(int i=0;i<s.size();i++)
{
while(i<s.size() && s[i]==‘ ‘) i++; //先去掉所有的空格
if(i==s.size()) break;
int j=i;
while(j<s.size() && s[j]!=‘ ‘) j++;
reverse(s.begin()+i,s.begin()+j); //反转字符串
if(k!=0) s[k++]=‘ ‘; //将字符串叠加到K上,最终k个字符串组成一个字符串组
while(i<j) s[k++]=s[i++];
}
s.erase(s.begin()+k,s.end()); //删除多余的空字符
reverse(s.begin(),s.end());//再反转一次
return s;
}
};
以上是关于leetcode-151-reverse word in a string的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode151. Reverse Words in a String
刷题-LeetCode151 Reverse Words in a String
Leetcode 151. Reverse Words in a String 解题报告
leetcode 151. Reverse Words in a String --------- java