Write a function to reverse the words of an input string in place.

ex. reverseWords("the quick brown fox jumps over the lazy dog")
returns "dog lazy the over jumps fox brown quick the"
Reverse the characters of a string once and hunt for a pattern.
The general algorithm for this involves reversing all of the characters of the input string in place and then reversing the characters of each of the words in place.

1. Input - "the quick brown fox"
2. Reverse complete string - "god yzal eht revo spmuj xof nworb kciuq eht"
3. Reverse words - "dog lazy the over jumps fox brown quick the"

Solutions can vary greatly across languages and thus the pseudocode is more descriptive in nature than normally.

reverseWords(String input)
    Reverse string word-by-word searching for space character to separate words. Note: This is where many languages differ in their processing. If using C or another language with pointers, passing the beginning/end pointer of each word to reverseString will be the best solution.

reverseString(String input)
    Reverse input by swapping beginning and end character while traversing through string from both directions.
    For swap you may use a temporary variable or with pointers apply XOR swap algorithm.