题解 | #翻转单词序列#
翻转单词序列
https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3
基本思路:先反转整个字符串,这样可以让单词之间的相对顺序满足,但是每个单词本身倒序,所以接下来只要通过查找空格,确定每个单词并反转就行了。
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; } };