剑指offer-44:翻转单词顺序列
利用双指针进行,大致步骤如下:1.反转整个字符串(reverse实现);2.通过双指针找到字符串中的一个个单词;3.逐个反转这些单词即可。时间复杂度为O(n),具体代码如下:
class Solution {
public:
string ReverseSentence(string str) {
reverse(str.begin(), str.end());
for(int i = 0; i < str.size(); i++){
int j = i;
while(j < str.size() && str[j] != ' ') j++;
reverse(str.begin() + i, str.begin() + j); //opps
i = j;
}
return str;
}
};