題解
- 題目沒讓對空格進行額外處理,只是反轉內容。
- 但是很多題解卻處理了額外的空格,應該是不對的。
- 如果不要多餘空格,可以使用 類
AC-Code
class Solution {
public:
string ReverseSentence(string str) { // 只反轉,保留原空格位置、數量。
if(str.empty()) return str;
reverse(str.begin(), str.end());
int i = 0;
while(i < str.length()) {
int j = i;
while(j < str.length() && str[j] != ' ')
++j;
int len = j - i;
for(int k = 0; k < len / 2; ++k)
swap(str[i + k], str[i + len - k - 1]);
i = j + 1;
}
return str;
}
/*
* 因爲樣例有 " " -> " "。所以按照題意,不應該對空格進行額外處理
*/
};