所谓特殊单词是指,构成这个单词的字母经过顺序变换或大小写变换形成的一个新单词也出现在文章中。输入数据有若干行,每行为一个字符串,由空格分隔开,单词由大小写字符及数字构成,每个单词长度不超过30个ASCII码字符。若该行字符为#,表示输入结束。按字典序输出所有的特殊单词,所有特殊单词按其第一次在文章中出现的形式输出,每行输出一个单词。示例输入:a aa sd 12 aaa Bd dB\nBD c a 21 A\naa aaa示例输出:12\nBd\na
时间: 2023-11-28 10:51:37 浏览: 38
我理解你的问题是需要给定一篇文章,判断其中是否存在特殊单词,并将这些特殊单词按字典序输出。特殊单词是指由同一组字符组成的不同大小写形式或不同顺序的单词都出现在文章中。
以下是一个 Python 的实现代码:
```python
import sys
special_words = set()
words_dict = {}
for line in sys.stdin:
line = line.strip()
if line == "#":
break
words = line.split()
for word in words:
lower_case_word = word.lower()
sorted_word = "".join(sorted(lower_case_word))
if sorted_word in words_dict:
special_words.add(words_dict[sorted_word])
special_words.add(word)
else:
words_dict[sorted_word] = word
for word in sorted(special_words):
print(word)
```
解释一下代码:
首先定义 `special_words` 集合和 `words_dict` 字典,`special_words` 用来存储特殊单词,`words_dict` 用来存储单词的小写形式按字典序排列后的结果和原单词的对应关系。
然后读入输入数据,对于每个单词,将其转换成小写形式并按字典序排序,如果这个排序后的单词在 `words_dict` 中已经存在,说明当前单词是一个特殊单词,将其和原单词都加入 `special_words` 集合;否则将当前单词和排序后的结果加入 `words_dict` 字典中。
最后按字典序输出 `special_words` 集合中的单词即可。