给定一个字符串,翻转该字符串,翻转时单词中的字符顺序不变。例如,如果字符串为"Hello World",则翻转后为"World Hello"。单词间以一个或多个空格分隔。注意,字符串开头和结尾都可能有多个空格。输出时去掉多余的空格。只在每个单词之间以1个空格间隔。输出的每行末尾没有空格。
时间: 2024-02-16 07:59:48 浏览: 68
这是一个比较经典的字符串操作问题。我的实现方式是先去除原字符串两端的多余空格,然后按照空格分割字符串,将每个单词翻转后再组合成新的字符串。
下面是实现的 Python 代码:
```python
def reverse_words(s):
# 去除字符串两端的多余空格
s = s.strip()
# 按照空格分割字符串
words = s.split()
# 翻转每个单词
for i in range(len(words)):
words[i] = words[i][::-1]
# 组合成新的字符串
return " ".join(words)
```
也可以使用正则表达式来分割字符串:
```python
import re
def reverse_words(s):
# 去除字符串两端的多余空格
s = s.strip()
# 按照空格分割字符串
words = re.split(r'\s+', s)
# 翻转每个单词
for i in range(len(words)):
words[i] = words[i][::-1]
# 组合成新的字符串
return " ".join(words)
```
例如:
```python
s = " Hello World! "
print(reverse_words(s)) # 输出 "olleH !dlroW"
```
注意,以上实现方式只翻转了每个单词中的字符,没有翻转单词的顺序。如果需要翻转单词的顺序,可以将翻转后的单词列表再次翻转。
阅读全文