LeetCode之Reverse Words in a String

来源:互联网 发布:java.util.TimeZone 编辑:程序博客网 时间:2024/06/04 18:33
class Solution {public:    void reverseWords(string &s) {        if(s.empty()) return;        //删除字符串头尾连续的空格        while(s[s.size()-1] == ' ') s.erase(s.end()-1, s.end());        while(s[0] == ' ') s.erase(s.begin(), s.begin()+1);        //字符串中间连续的空格留下一个        for(int i = s.size()-1; i > 0;){            if(s[i] == ' ' && s[i-1] == ' ') s.erase(s.begin()+i, s.begin()+i+1);            else --i;        }        //翻转整个句子        reverse(s.begin(), s.end());        //翻转每个单词        int f = 0;        size_t i = 1;        while(i < s.size()){            if(s[i] == ' '){                reverse(s.begin()+f, s.begin()+i);                f = i+1;            }            ++i;        }        reverse(s.begin()+f, s.begin()+i);    }};

0 0