new_contents: # Time:  O(n)
  # Space: O(1)
  
  # Given a string, you need to reverse the order of characters in each word within a sentence
  # while still preserving whitespace and initial word order.
  #
  # Example 1:
  # Input: "Let's take LeetCode contest"
  # Output: "s'teL ekat edoCteeL tsetnoc"
  # Note: In the string, each word is separated by single space and
  # there will not be any extra space in the string.
  
  class Solution(object):
      def reverseWords(self, s):
          """
          :type s: str
          :rtype: str
          """
          def reverse(s, begin, end):
              for i in xrange((end - begin) // 2):
                  s[begin + i], s[end - 1 - i] = s[end - 1 - i], s[begin + i]
  
          s, i = list(s), 0
          for j in xrange(len(s) + 1):
              if j == len(s) or s[j] == ' ':
                  reverse(s, i, j)
                  i = j + 1
          return "".join(s)
  
subject: Create reverse-words-in-a-string-iii.py