爱意随风起9306 发表于 2023-3-27 15:45:09

请问我的代码这样不对吗

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

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

样例
输入:
hello world
输出:
olleh dlrow

z5560636 发表于 2023-3-27 15:54:00

看上去没啥毛病,你的题目在网址在哪?

只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开
是不是没限制长度?

isdkz 发表于 2023-3-27 16:05:30

如果单词之间有多个空格,使用 split() 方法之后再使用 ' '.join() 会导致空格被合并。

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

import re

sentence = input()
words = re.findall(r'\S+', sentence)
reverse_words = 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() 函数替换句子中的原始单词,确保保留原始句子中的空格。

最后,打印输出结果。
页: [1]
查看完整版本: 请问我的代码这样不对吗