LeetCode #151 Reverse Words in a String

Problem

Given an input string, reverse the string word by word.

Example

1
2
Input: "the sky is blue",
Output: "blue is sky the".

Note

  • 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.

Solution

Method:

Time Complexity: O(n)

Space Complexity: O(n)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution(object):
def reverseWords(self, s):
"""
:type s: str
:rtype: str
"""
t = s.split()
res = ''
idx = len(t) - 1

while idx > 0:
res += t[idx] + ' '
idx -= 1
if t:
res += t[0]

return res