Given an input string, reverse the string word by word.
Input: "the sky is blue"
Input: " hello world! "
Input: "a good example"
- A word is defined as a sequence of non-space characters.
- Input string may contain leading or trailing spaces. However, your reversed string should not contain leading or trailing spaces.
- You need to reduce multiple spaces between two words to a single space in the reversed string.
For C programmers, try to solve it in-place in O(1) extra space.