📜  门| GATE-CS-2002 |第 50 题(1)

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

题目描述

本题是Gate-CS-2002的第50题,要求编写一个程序,实现将一个字符串中的所有单词颠倒过来。

示例

输入: "hello world"

输出: "world hello"

解题思路

本题可以采用双指针的方法,从字符串的两端开始遍历,交换两个指针指向的字符,直到两个指针相遇。

首先需要对输入的字符串进行分割,将字符串拆分成单个的单词。可以通过空格 将字符串分隔成一个字符串数组,每个元素即为一个单词。

然后将每个单词颠倒过来,即可得到最终的结果。

代码实现

def reverse_words(s: str) -> str:
    # 将字符串以空格分隔成单词
    words = s.split()

    # 对于每个单词,颠倒字符顺序
    for i in range(len(words)):
        words[i] = words[i][::-1]

    # 将颠倒后的单词数组以空格连接成字符串
    result = ' '.join(words)
    return result

总结

本题考察了字符串的分割和翻转操作,同时需要熟悉用双指针实现字符串的遍历交换。对于Python这种高级语言,操作字符串非常方便,需要了解对应的API即可。