class Solution {
public:
void reverseWords(string &s) {
del_tail_blank(s);
reverse(s.begin(), s.end());
del_tail_blank(s);
string word;
for (auto start = s.begin(); start != s.end();){
auto end = start;
for (; end != s.end() && *end != ' '; ++end);
reverse(start, end); //start依然对应的是头,end 依然对应的是尾,只是指针所指向的值变了
start = end;
if (end != s.end()){
start = ++end; // 跳过一个空格
for (; end != s.end() && *end == ' '; ++end);
start = s.erase(start, end); // start = end
}
}
}
private:
void del_tail_blank(string &s){
int i;
for (i = s.size() - 1; i >= 0 && s[i] == ' '; --i);
s.erase(++i, s.size() - i);
}
};
leetcode Reverse Words in a String
最新推荐文章于 2024-01-04 11:20:32 发布