LeetCode(151) Reverse Words in a String

来源:互联网 发布:2015年程序员考试真题 编辑:程序博客网 时间:2024/03/29 20:27
class Solution {public:    void reverseWord(string &s, int index1, int index2) {        index2--;        while(index2 > index1) {            char tmp = s[index2];            s[index2] = s[index1];            s[index1] = tmp;            index1++;            index2--;        }        return;    }    void removeSpace(string &s) {        //int length = s.size();        int index = 0;        while(index < s.size() && s[index] == ' ')             s.erase(index, 1);        while(index < s.size()) {                while(s[index] != ' ')                index++;            index++;            while(index < s.size() && s[index] == ' ')                s.erase(index, 1);        }        while(s.size() >= 1 && s[s.size() - 1] == ' ')            s.erase(s.size() - 1);    }    void reverseWords(string &s) {        reverse(s.begin(), s.end());        s.push_back(' ');        int length = s.size();        int index1 = 0;        int index2 = 0;        while(true) {            while(index1 < length && s[index1] == ' ')            index1++;            if(index1 == length)                break;            index2 = index1;            while(s[index2] != ' ')                index2++;            reverseWord(s, index1, index2);            index1 = index2;        }        removeSpace(s);    }};
0 0
原创粉丝点击