您的位置:首页 > 其它

LeetCode Reverse Words in a String

2015-09-08 22:17 260 查看
思路:

从后往前,不断将word转移到tmp中,最后s = tmp。

时间复杂度O(N),空间复杂度O(N)。

class Solution {
public:
    void reverseWords(string &s) {
        string tmp;
        for(int i = s.size() - 1; i >= 0; ) {
            while(i >= 0 && s[i] == ' ') --i;
            if(i < 0) break;
            if(!tmp.empty()) tmp.push_back(' ');
            string t;
            while(i >= 0 && s[i] != ' ') {
                t.push_back(s[i--]);
            }
            reverse(t.begin(), t.end());
            tmp.append(t);
        }
        s = tmp;
        return;
    }
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: