classSolution { public: string reverseWords(string s){ reverse(s.begin(), s.end()); int n = s.size(); int m = 0; for (int i = 0; i < n; ++i) { //如果是i++会导致字符重复,比如“ hello world ”到这一步会变成“worldw olleh” if (s[i] != ' ') { if (m != 0)s[m++] = ' '; int j = i; while (j < n && s[j] != ' ') s[m++] = s[j++]; reverse(s.begin() + m - (j - i), s.begin() + m); i = j; }
} s.erase(s.begin() + m, s.end());//调试发现这一步非常重要 return s; } };