Reverse Words in a String, reversewords
Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue ",
Return "blue is sky ".
Update ):
For C programmers: Try to solve it in-place in O (1) space.
Clarification:
- What constitutes a word?
- A sequence of non-space characters constitutes a word.
- Cocould the input string contain leading or trailing spaces? Yes. However, your reversed string shocould not contain leading or trailing spaces.
- How about multiple spaces between two words?
Reduce them to a single space in the reversed string.
Flip the string, but the letter sequence in the string remains unchanged. Pay attention to spaces. The Python code is as follows:
class Solution: # @param s, a string # @return a string def reverseWords(self, s): if len(s) == 0: return "" ret = "" start = False begin = end = 0 start = False for i in range(len(s)): if s[len(s) - i - 1] != '' and s[len(s) - i - 1] != ' ' and end == 0: end = len(s) -i if end != 0 and (s[len(s) - i - 1] == ' ' or i == (len(s) - 1)): begin = len(s) -i if not start: if i == (len(s) - 1) and s[begin -1] != ' ': begin -= 1 ret += s[begin:end] start = True else: if i == (len(s) - 1) and s[begin -1] != ' ': begin -= 1 ret += " " + s[begin:end] begin = 0 end = 0 return ret