📅  最后修改于: 2023-12-03 14:58:25.237000             🧑  作者: Mango
这是一道来自 GATE-CS-2003 的编程题,题目编号为第 47 题。本题旨在考察编程实现的基础能力,要求实现一个函数来处理字符串,具体要求详见下文。
给定一个字符串 s
,请实现一个函数:
def reverse_word_order(s: str) -> str:
pass
函数的参数为一个字符串 s
,该函数需要将 s
中单词的顺序翻转过来,并返回处理后的字符串。
例如,对于字符串 s = "This is a test"
,函数应该返回 "test a is This"
。
需要注意的是,单词之间可能有多个空格,但是处理后的字符串中单词之间只能有一个空格。
输入:
"This is a test"
输出:
"test a is This"
输入:
" Hello world! "
输出:
"world! Hello"
首先,我们可以将字符串 s
以空格为分隔符,拆分成一个字符串列表。接着,反转该列表,再将其拼接成一个字符串即可。
需要注意的是,字符串中有可能存在多个空格,我们需要先用一个正则表达式将多个空格缩减为一个空格,然后再进行拆分和反转操作。
下面是本题的参考实现代码,可供参考。
import re
def reverse_word_order(s: str) -> str:
s = re.sub(r'\s+', ' ', s.strip())
words = s.split(' ')
words.reverse()
return ' '.join(words)
代码说明:
首先,我们使用 re
模块的正则表达式功能将字符串 s
中的多个空格缩减为一个空格,并去除首尾的空格。然后,将字符串拆分成一个字符串列表,反转该列表,最后将其拼接为一个字符串并返回。