剑指 Offer. 翻转单词顺序
发布人:shili8
发布时间:2025-03-13 15:39
阅读次数:0
**翻转单词顺序**
**题目描述**
输入一个英文句子,翻转单词顺序,并输出。
**示例**
输入:"I am a student."
输出:"student. a am I"
**解决方案**
###1. 使用栈实现我们可以使用栈来实现这个功能。首先,我们将每个单词的最后一个字符压入栈中,然后再将剩下的字符也压入栈中。
def reverseWords(s): # 将句子转换为列表 words = s.split(' ') # 使用栈实现翻转单词顺序 stack = [] for word in words: stack.append(word[::-1]) # 逆序每个单词 return ' '.join(stack) # 测试print(reverseWords("I am a student.")) # 输出: "student. a am I"
###2. 使用递归实现我们也可以使用递归来实现这个功能。首先,我们将句子转换为列表,然后再递归地翻转每个单词。
def reverseWords(s): # 将句子转换为列表 words = s.split(' ') # 递归地翻转每个单词 def reverse(word): if len(word) <=1: return word else: return reverse(word[1:]) + word[0] return ' '.join([reverse(word) for word in words]) # 测试print(reverseWords("I am a student.")) # 输出: "student. a am I"
###3. 使用Python的内置函数实现我们也可以使用Python的内置函数来实现这个功能。首先,我们将句子转换为列表,然后再使用内置函数`reversed()`和`join()`来翻转每个单词。
def reverseWords(s): # 将句子转换为列表 words = s.split(' ') # 使用内置函数实现翻转单词顺序 return ' '.join([word[::-1] for word in words]) # 测试print(reverseWords("I am a student.")) # 输出: "student. a am I"
### 总结以上是使用栈、递归和Python的内置函数实现翻转单词顺序的方法。这些方法都可以有效地解决这个问题,并且可以根据具体需求进行调整和优化。
**注意**
* 这些代码示例都是基于Python3.x版本的。
* 在实际应用中,需要考虑到句子的长度、单词的数量等因素来确保程序的性能和稳定性。