原题链接:https://leetcode.com/problems/reverse-words-in-a-string/#/description
题目描述:
Given an input string, reverse the string word by word.
For example,
Given s = "the sky is blue
",
return "blue is sky the
".
思路:用两个指针left, right从输入的字符串末尾开始以单词(或单个字母)为单位逐个选取,循环执行
class Solution(object):
def reverseWords(self, s):
"""
:type s: str
:rtype: str
"""
if len(s) == 0:
return ''
else:
right = len(s) - 1
s_rvs = ''
while True:
while s[right] == ' ' and right > 0:
right -= 1
if right == 0:
if s[right] != ' ':
s_rvs += s[right]
return s_rvs.strip()
else:
left = right - 1
while s[left] != ' ' and left > 0:
left -= 1
if left == 0:
if s[left] != ' ':
s_rvs += s[left:right + 1]
return s_rvs.strip()
else:
s_rvs += s[left + 1:right + 1]
return s_rvs.strip()
else:
s_temp = s[left + 1:right +1] + ' '
s_rvs += s_temp
right = left