You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python反转句子后单词间无空格问题求助

问题分析与修复

为什么单词间没有空格?

你的代码存在两个核心问题:

  1. 分割方式不合理:使用str1.split(' ')按单个空格分割,若原字符串有多个连续空格、开头/结尾空格,会生成空字符串元素;即使是示例输入,这种分割方式也没解决后续拼接的空格问题。
  2. 拼接时未添加分隔空格:循环里只是把每个单词直接拼接到final_str,完全没在单词间插入空格,自然得到连在一起的结果。另外"".join(ss[i])是多余操作,ss[i]本身就是单个单词字符串,join在这里不起作用。

修复方案

方案1:简化写法(推荐)

利用Python内置方法一步完成,简洁且鲁棒性强:

class Solution(object):
    def reverseWords(self, str1):
        # split()不带参数时,自动忽略所有空白字符(空格、制表符等),返回非空单词列表
        words = str1.split()
        # 反转单词列表
        words.reverse()
        # 用单个空格拼接所有单词
        return ' '.join(words)

方案2:修改原循环逻辑

如果想保留循环写法,调整分割方式并添加空格判断:

class Solution(object):
    def reverseWords(self, str1):
        # 用split()代替split(' '),避免生成空字符串
        ss = str1.split()
        final_str = ""
        for i in range(len(ss)-1, -1, -1):
            # 若final_str已有内容,先加空格再拼单词
            if final_str:
                final_str += ' '
            final_str += ss[i]
        return final_str

测试验证

用示例输入"the sky is blue"测试,两种方案都会返回"blue is sky the";如果输入包含多余空格(比如" hello world! "),也会正确返回"world! hello",完全符合题目要求。

内容的提问来源于stack exchange,提问作者vilnius19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 11:27:07