基本思路:先反转整个字符串,这样可以让单词之间的相对顺序满足,但是每个单词本身倒序,所以接下来只要通过查找空格,确定每个单词并反转就行了。
class Solution {
public:
string ReverseSentence(string str) {
if (str == "") return str;
int n = str.length();
reverse(str.begin(), str.end());
int l = 0;
while (l < n) {
while (l < n && str[l] == ' ') l++;
int r = str.find(' ', l);
if (r == string::npos) {
reverse(str.begin() + l, str.end());
break;
}
else {
reverse(str.begin() + l, str.begin() + r);
l = r + 1;
}
}
return str;
}
};

京公网安备 11010502036488号