如果调用函数,可以很快得到答案,但这应该不是这道题的本意
class Solution: def ReverseSentence(self, s): # write code here return ' '.join(s.split(' ')[::-1])
标准做法是通过字符串的翻转,首先翻转整个字符串,然后翻转字符串中的每个单词,注意str是不可变的,要把它转成list操作,最后再连接起来
要考虑的情况:
句子只有一个单词
字符串内容为空
class Solution: def ReverseSentence(self, s): # write code here if not s : return s lists = self.Reverse(list(s))#翻转整个句子 begin = 0 for i in range(len(lists)): #翻转每一个单词,当遇到' '时说明上一个单词的字符遍历结束 if lists[i] == ' ': lists[begin:i] = self.Reverse(lists[begin:i]) begin = i + 1 #翻转最后一个单词 lists[begin:] = self.Reverse(lists[begin:]) return ''.join(lists) def Reverse(self, s): if not s: return s start = 0 end = len(s) - 1 while start < end : s[start], s[end] = s[end], s[start] start += 1 end -= 1 return s