927. Reverse Words in a String II

class Solution { public: /** * @param str: a string * @return: return a string */ string reverseWords(string &str) { // write your code here const int size = str.size(); for(int i = 0; i < size/2; i++){ char temp = str[i]; str[i] = str[size - 1 - i]; str[size - 1 - i] = temp; } int left = 0, right = 0; while(right < size){ while(right < size && str[right] != ' '){ ++right; } if(right < size){ for(int i = 0; i < (right - left) / 2; i++){ char temp = str[left + i]; str[left + i] = str[right - 1 - i]; str[right - 1 - i] = temp; } ++right; left = right; } } for(int i = 0; i < (size - left) / 2; i++){ char temp = str[left + i]; str[left + i] = str[size - 1 - i]; str[size - 1 - i] = temp; } return str; } };

Comments

Popular posts from this blog

算法的比较