Reverse in place:
1. reverse the whole sentence.
2. reverse every word.
We cant do it for I, because there are extra spaces in sentence.
1 class Solution { 2 public: 3 void reverse(string &s, int start, int end) { 4 while (start < end) { 5 [](char &a, char &b) {char c = a; a = b; b = c;}(s[start++], s[end--]); 6 } 7 } 8 void reverseWords(string &s) { 9 int len = s.size(), index = 0; 10 reverse(s, 0, len-1); 11 for (int i = 0; i < len; i++) { 12 if (s[i] == ' ') { 13 reverse(s, index, i-1); 14 index = i+1; 15 } 16 } 17 reverse(s, index, len-1); 18 } 19 };