利用函数find_first_of(),找到空格为分界线,将空格之前的单词加到字符串的最前面,并将字符串剪短。
这样每次只需要添加第一个空格之前的单词到目标字符串最前面就可以得到最终的字符串了。
输入"nowcoder. a am I"
第一次循环:s=" nowcoder", str="a am I";
第二次循环:s=" a nowcoder", str="am I";
第三次循环:s=" am a nowcoder", str="I";
最后返回str+s="I am a nowcoder."。
class Solution {
public:
string ReverseSentence(string str) {
string s;
int i;
while(str.find_first_of(' ') != -1){
i = 0;
string p;
while(str[i] != ' '){
p += str[i];
i++;
}
s.insert(0, ' ' + p);
str = str.substr(str.find_first_of(' ')+1);
}
return s.insert(0, str);
}
};