Skip to content

Instantly share code, notes, and snippets.

@icameling
Created July 19, 2022 07:36
Show Gist options
  • Select an option

  • Save icameling/3a38bfb55363445be95f17588ffb35db to your computer and use it in GitHub Desktop.

Select an option

Save icameling/3a38bfb55363445be95f17588ffb35db to your computer and use it in GitHub Desktop.
#字符串 #颠倒字符串中的单词
class Solution {
public:
string reverseWords(string s) {
reverse(s.begin(), s.end());
int str_len = 0;
int l = -1;
for (int i = 0; i < s.size(); ++i) {
if (l >= 0 && s[i] == ' ') {
reverse(s.begin() + l, s.begin() + i);
for (int k = 0; k < i - l; ++k) {
s[str_len++] = s[l+k];
}
if (i < s.size())
s[str_len++] = ' ';
l = -1;
} else if (s[i] != ' ' && l < 0) {
l = i;
}
}
// last word
if (l >= 0) {
reverse(s.begin() + l, s.end());
for (int k = 0; k < s.size() - l; ++k) {
s[str_len++] = s[l+k];
}
}
// remove space in the end of sentence
while (str_len > 0 && s[str_len - 1] == ' ')
str_len--;
s.resize(str_len);
return s;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment