解题思路Python 的 split() 方法不传参数时会按任意空白字符分割并自动忽略前导、尾随空格以及连续多个空格。因此只需要用 s.split() 得到所有单词列表反转列表用单个空格 ’ ’ 连接代码实现classSolution:defreverseWords(self,s:str)-str:return .join(s.split()[::-1])或者写成更清晰的分步形式classSolution:defreverseWords(self,s:str)-str:wordss.split()words.reverse()return .join(words)手动双指针版可选如果想自己控制分割过程也可以这样写classSolution:defreverseWords(self,s:str)-str:ss.strip()ifnots:returnwords[]left,right0,len(s)-1whileleftright:# 跳过空格找到单词开头whileleftrightands[left] :left1ifleftright:breakstartleft# 找到单词结尾whileleftrightands[left]! :left1words.append(s[start:left])return .join(words[::-1])关键点说明要点 说明必须用 split() 而不是 split(’ ‘) split(’ ) 会把连续空格分割成空字符串导致结果错误split() 自动去重空格 前导、尾随、连续空格都会被正确处理join 时只用一个空格 满足题目要求单词间仅一个空格Python 字符串不可变 无法真正原地修改通常返回新字符串即可复杂度分析· 时间复杂度O(n)需要遍历字符串进行分割和连接· 空间复杂度O(n)存储单词列表和结果字符串示例验证输入: the sky is blue split: [the, sky, is, blue] 反转: [blue, is, sky, the] 输出: blue is sky the 输入: hello world split: [hello, world] 反转: [world, hello] 输出: world hello 输入: a good example split: [a, good, example] 反转: [example, good, a] 输出: example good a