(带思路, 详解) LeetCode 557 : 翻转字符串中的单词3
程序员文章站
2022-06-11 10:35:34
...
class Solution {
public:
string reverseWords(string s) {
//循环查找空格, 然后翻转中间的内容
size_t begin = 0;
size_t pos = 0;
string::iterator it = s.begin();
//循环查找空格, 翻转单词, 最后剩下一个待处理
while(pos < s.size()) {
begin = pos;
//找空格
pos = s.find(" ", begin);
if(pos != string::npos) {
//找到空格, 翻转单词
reverse(it + begin, it + pos);
pos++;
}
else {
//没找到的话pos为-1, 重新给pos赋值, 处理最后一个单词
pos = begin;
break;
}
}
//翻转最后一个单词
reverse(it + pos, s.end());
return s;
}
};