739 B
739 B
翻转字符串里的单词
- 去除单词中的额外空格
- 翻转整个字符串
- 挨个翻转单词
双指针去除额外空格:
如果快指针指向的是空格则跳过;
如果快指针指向的不是空格则把 s[fast]
覆盖到 s[slow]
;
如果快指针指向的是空格并且下一个指向的不是空格,则在 s[slow]
处添加一个新空格(前提是 slow
不为 0
,因为这种情况代表字符串的开头是空格)。
翻转字符串:
void reverseSubStr(string &s, int begin, int end) {
for (; begin < end; ++begin, --end) {
auto tmp = s[begin];
s[begin] = s[end];
s[end] = tmp;
}
}