📅  最后修改于: 2023-12-03 15:37:15.610000             🧑  作者: Mango
有一个字符串,其中包含小写英文字母和空格。将空格作为分隔符将整个字符串拆分为单个单词。现在,按字母顺序对每个单词进行排序,并按照已排序的单词顺序对整个字符串进行排序。
输入:
2
5
ab bc cd ad ae
3
geeks for geeks
输出:
ab ad ae bc cd
for geeks geeks
sorted()
函数按字母顺序进行排序。def sort_sentence(s):
# 使用split()函数将字符串拆分成单词列表
words = s.split()
# 对于每个单词,按字母顺序进行排序
sorted_words = [''.join(sorted(word)) for word in words]
# 将单词和已排序的单词组成一个元组,然后根据已排序的单词进行排序
sorted_words_with_original = [(sorted_word, word) for sorted_word, word in zip(sorted_words, words)]
sorted_words_with_original.sort()
# 按新的顺序组成新的语句并返回
sorted_sentence = ' '.join([tup[1] for tup in sorted_words_with_original])
return sorted_sentence
# 测试代码
if __name__ == '__main__':
t = int(input())
for i in range(t):
n = int(input())
s = input()
# 调用函数进行排序并打印结果
sorted_sentence = sort_sentence(s)
print(sorted_sentence)
代码片段使用markdown标记,如下所示:
```python
def sort_sentence(s):
# 使用split()函数将字符串拆分成单词列表
words = s.split()
# 对于每个单词,按字母顺序进行排序
sorted_words = [''.join(sorted(word)) for word in words]
# 将单词和已排序的单词组成一个元组,然后根据已排序的单词进行排序
sorted_words_with_original = [(sorted_word, word) for sorted_word, word in zip(sorted_words, words)]
sorted_words_with_original.sort()
# 按新的顺序组成新的语句并返回
sorted_sentence = ' '.join([tup[1] for tup in sorted_words_with_original])
return sorted_sentence
# 测试代码
if __name__ == '__main__':
t = int(input())
for i in range(t):
n = int(input())
s = input()
# 调用函数进行排序并打印结果
sorted_sentence = sort_sentence(s)
print(sorted_sentence)