186. Reverse Words in a String II

//acception of mine Jacob!
class Solution {
public:
    void reverseWords(vector<char>& str) {
       for(int i = 0; i<str.size();)
       {
           int j = i;
           while(str[j]!=' ' && j<str.size()) ++j;
           int a = i; 
           int b = j-1;
           while(a<b) swap(str[b--],str[a++]);
           
           i = j+1;
       }
        
       std::reverse(str.begin(),str.end());
    }
};


/*
others
class Solution {
public:
    void reverseWords(vector<char>& str) {
        for(int i = 0; i < str.size(); i++){
            int j = i + 1;
            while(j < str.size() && str[j] != ' ') j++;
            int a = i, b = j - 1;
            while(a < b) swap(str[a++], str[b--]);
            i = j;
        }
        reverse(str.begin(), str.end());
    }
};
*/

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326250039&siteId=291194637