题目描述
按单词反转句子,例如“I am a student.” 反转为“student. a am I”
思路如下:
先将整个字符串按字符反转, 然后对每个单词反转
代码如下:
class Solution {
public:
//先按字符反转整个字符串,在对每个单子反转
string reverse_sentence(string& str) {
if(0 == str.length()){
return str;
}
reverse(str.begin(), str.end()); //反转整个字符串
int l = 0; //单词的开始
int r = 0; //单词的结束
while(l < str.length()){
while(l < str.length() && str[l] == ' '){ //跳过空格
l++;
}
r = l;
while(r < str.length() && str[r] != ' '){
r++;
}
reverse(str.begin()+l, str.begin()+r); //反转单词
l = r;
}
return str;
}
string ReverseSentence(string str) {
return reverse_sentence(str);
}
};