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

字符串单词内字符反转代码问题排查:输入输出不符咨询

解决单词内字符反转的常见问题

嘿,我来帮你排查下这个单词内字符反转的问题!你遇到的情况大概率是没找准正确的处理逻辑——直接反转整个字符串或者在单词分割/拼接环节出了错。

先看最容易踩的坑

很多人一开始会直接反转整个字符串,比如写这样的代码:

def reverse_words(s):
    return s[::-1]

输入 "Reverse this line" 后会得到 "enil siht esreveR",这明显和你的预期不符——它把整个句子的单词顺序也反转了,而不是只反转每个单词内部的字符。

还有一种常见错误是分割单词时用了 split(' ') 而不是默认的 split():

def reverse_words(s):
    words = s.split(' ')
    reversed_words = [word[::-1] for word in words]
    return ' '.join(reversed_words)

如果原字符串有多个连续空格,split(' ') 会生成空字符串元素,反转后拼接会出现多余的空格,影响结果。

正确的实现思路

你需要把字符串拆成独立的单词,单独反转每个单词的字符,再把它们用空格拼接回去:

def reverse_words_in_string(s):
    # 用默认split()分割,自动处理任意数量的空白字符(空格、制表符等)
    words = s.split()
    # 列表推导式反转每个单词
    reversed_words = [word[::-1] for word in words]
    # 用单个空格拼接反转后的单词
    return ' '.join(reversed_words)

测试一下这个函数:

print(reverse_words_in_string("Reverse this line"))
# 输出:esreveR siht enil

完全符合你的预期!

你可能遗漏的关键点

  • 没有针对单个单词做反转,误把整个字符串反转了
  • 分割单词的方式不正确,导致处理多空格场景出错
  • 反转单词后没有用空格正确拼接,直接把列表转成了字符串(比如用 str(reversed_words))

如果你的需求是保留原字符串的空格格式(比如多个连续空格),可以用正则表达式来分割:

import re

def reverse_words_preserve_spaces(s):
    # 分割成单词和空格的列表
    parts = re.split(r'(\s+)', s)
    # 只反转单词部分,空格保持原样
    reversed_parts = [part[::-1] if not part.isspace() else part for part in parts]
    return ''.join(reversed_parts)

这个版本会保留原字符串的空格数量,比如输入 "Reverse this line"(两个和三个空格),输出会是 "esreveR siht enil"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:24:23