合并字符串中的空格
写了很长时间,处理各种边界问题,很烦,但是这是需要掌握的基本能力。
- 去除字符串前边多于的空格
- 去除字符串尾部多于的空格
- 合并单词之间的多于的空格
class Solution {
public:
string reverseWords(string s) {
if (s.empty()) return s;
int i = 0;
string tmp = "";
// 去除前边的空格
while (i < s.size() && s[i] == ' ') {
i++;
}
while (i < s.size()) {
// 合并单词之间的多于的空格 和尾部的空格
if (s[i] == ' ') {
while (i < s.size() && s[i] == ' ') {
i++;
}
// 以一个空格代替上边的所有的空格
tmp += ' ';
}
else {
tmp += s[i++];
}
}
// 这里要加一个判断
if (tmp[tmp.size() - 1] == ' ')
tmp.erase(tmp.end() - 1);
return tmp;
}