解答
class Solution {
public:
string reverseWords(string s) {
string temp,result;
while(1){
if(s.find(' ')!=string::npos){
temp=s.substr(0,s.find(' '));
reverse(temp.begin(),temp.end());
result += temp+" ";
s=s.substr(s.find(' ')+1);
}
else{
temp=s;
reverse(temp.begin(),temp.end());
result += temp;
break;
}
}
return result;
}
};
笔记
- 循环的问题,我之前是用s.empty()判断来作为判断条件的,结果会进入死循环。
- 找不到空格说明已经只剩最后一个单词了,需要单独处理,
找到空格时创建新串要加上空格
result += temp + " ";
补充
其实可以用s.empty()来作为循环的条件,处理方式为:
条件: 1 改为 !s.empty() else中: break 改为 s.clear()