思路:
先处理前面和后面的空格,然后用双指针处理里面的单词,先把里面的单词反转,然后再整体反转。
代码:
class Solution {
public:
string reverseWords(string s) {
//先把两边的空格全干掉
reverse(s.begin(),s.end());
while(s.back() == ' ') s.pop_back();
reverse(s.begin(),s.end());
while(s.back() == ' ') s.pop_back();
for(int i = 0;i < s.size() ;i++){
int j = i;
while(j < s.size() && s[j] != ' ') j++;
cout<<j;
reverse(s.begin() + i, s.begin() + j);
while(j < s.size() && s[j + 1] == ' ') s.erase(s.begin() + j);
i = j;
}
reverse(s.begin(),s.end());
return s;
}
};
评论区