问题:
给定一个字符串,字符串中存在若干个单词,并且每个单词用空格隔开,在每个单词中嵌入代表单词位置的数字,返回排序后的字符串
案例:
输入:"Che2ng Tolng Xing4 3Lv"
输出:"Tong Cheng Lv Xing'
输入“Fu2 La7i! Ben1 S3han Xiang5 H4ai W6ei
输出:"Ben Fu Shan Hai Xiang Wei Lai!!
实现代码
def custom_sort(s):
# 以空格分割字符串
words = s.split()
# 创建一个字典,用于存储数字和对应的单词
word_dict = {}
for word in words:
# 初始化数字和值
num = ""
val = ""
# 标志位,用于判断是否遇到数字
is_digit = False
for char in word:
if char.isdigit():
num += char
is_digit = True
else:
val += char
# 如果遇到数字,则将数字和对应的单词存入字典
if is_digit:
word_dict[int(num)] = val
# 根据键的大小排序字典
sorted_dict = dict(sorted(word_dict.items()))
# 输出排序后的单词
result = " ".join(sorted_dict.values())
return result
# 测试
input_str = "Fu2 La7i! Ben1 S3han Xiang5 H4ai W6ei"
output_str = custom_sort(input_str)
print(output_str)
输出:
![](https://i-blog.csdnimg.cn/blog_migrate/0f3c413529e2859f093b9d4f048580db.png)