📜  门| GATE CS Mock 2018年|问题23(1)

📅  最后修改于: 2023-12-03 15:12:38.628000             🧑  作者: Mango

题目23 - 逆向字符串

给定一个字符串S,你需要反向S中的每个单词,反转后的字符串仍需保持原单词的顺序。

输入
  • 第一行包含T(测试用例数),然后是T个测试用例。测试用例的每一行都包含一个字符串 S。
输出
  • 对于每个测试用例,在新行中打印反转后的字符串。
限制
  • 1 ≤ T ≤ 100
  • 1 ≤ |S| ≤ 10^4
  • 只包含字母。
示例
输入:
2
hello world
abc def ghi

输出:
olleh dlrow
cba fed ihg
解法

首先将字符串按空格进行切分,得到每一个单词,对于每个单词进行翻转即可。可以借助Python内置函数 split() 来完成此步骤。

def reverse_words(sentence):
    words = sentence.split()
    for i in range(len(words)):
        words[i] = words[i][::-1]
    return ' '.join(words)

以上代码将输入参数 sentence 以空格为界限进行切分,得到每个单词,并依次进行翻转。其中 [::-1] 表示翻转字符串,最后使用 join() 方法将单词列表拼接为一个字符串返回即可。

完整代码
def reverse_words(sentence):
    words = sentence.split()
    for i in range(len(words)):
        words[i] = words[i][::-1]
    return ' '.join(words)

if __name__ == '__main__':
    num_cases = int(input())
    for i in range(num_cases):
        s = input()
        res = reverse_words(s)
        print(res)

在以上代码中,我们使用 input() 函数来获取输入,使用 print() 函数来输出结果。此外,我们还需要获取测试用例数,并使用 range() 函数进行循环,依次处理每个测试用例。