代码如下:
class Solution {
public:
void deletesapce(string &s,int slow){
for(int i =0;i<s.size();++i){
if(s[i]!=' '){
if(slow!=0) s[slow++]=' ';
while(i<s.size()&&s[i]!=' '){
s[slow++]=s[i++];
}
}
}
s.resize(slow);
}
string reverseWords(string s) {
int j = 0;
int slow = 0;
deletesapce(s,slow);
reverse(s.begin(),s.end());
for(int i = 0;i<=s.size();++i){
if(s[i]==' ' || s.size()==i) {
reverse(&s[j],&s[i]);
j=i+1;
}
}
return s;
}
};
这题的难点就是如何去掉多余的空格,我们在写deletespace的时候,直接写出代码可能有点困难,我们可以先写出大概的逻辑,也就是去除所有空格,思路就是移除数组元素的思路,我们在写完大逻辑之后,想想如何去除多余空格即可。