鱼C论坛

 找回密码
 立即注册
查看: 1949|回复: 2

[已解决]请问我的代码这样不对吗

[复制链接]
发表于 2023-3-27 15:45:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
sentence = input().split()
for i in range(len(sentence)):
    sentence[i] = sentence[i][::-1]
print(' '.join(sentence))

题目要求:
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。

样例
输入:
hello world
输出:
olleh dlrow
最佳答案
2023-3-27 16:05:30
如果单词之间有多个空格,使用 split() 方法之后再使用 ' '.join() 会导致空格被合并。

为了解决这个问题,你可以使用正则表达式来找到所有的单词并翻转它们。这是一个修复后的代码:
import re

sentence = input()
words = re.findall(r'\S+', sentence)
reverse_words = [word[::-1] for word in words]

output = sentence
for word, reverse_word in zip(words, reverse_words):
    output = output.replace(word, reverse_word, 1)

print(output)

这段代码使用了正则表达式来查找所有的单词(不包括空格),然后将它们翻转。

之后,我们遍历原始单词和翻转后的单词,用 replace() 函数替换句子中的原始单词,确保保留原始句子中的空格。

最后,打印输出结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-27 15:54:00 | 显示全部楼层
看上去没啥毛病,你的题目在网址在哪?

只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开
是不是没限制长度?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-27 16:05:30 | 显示全部楼层    本楼为最佳答案   
如果单词之间有多个空格,使用 split() 方法之后再使用 ' '.join() 会导致空格被合并。

为了解决这个问题,你可以使用正则表达式来找到所有的单词并翻转它们。这是一个修复后的代码:
import re

sentence = input()
words = re.findall(r'\S+', sentence)
reverse_words = [word[::-1] for word in words]

output = sentence
for word, reverse_word in zip(words, reverse_words):
    output = output.replace(word, reverse_word, 1)

print(output)

这段代码使用了正则表达式来查找所有的单词(不包括空格),然后将它们翻转。

之后,我们遍历原始单词和翻转后的单词,用 replace() 函数替换句子中的原始单词,确保保留原始句子中的空格。

最后,打印输出结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 04:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表