Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sys import stdin
- from collections import OrderedDict
- def linear(d):
- if not d:
- return d
- if type(d[0]) is list:
- return linear(d[0]) + linear(d[1:])
- return d[:1] + linear(d[1:])
- def is_anagram(str1, str2):
- str1_list = list(str1)
- str1_list.sort()
- str2_list = list(str2)
- str2_list.sort()
- return str1_list == str2_list
- d = dict()
- input()
- used_values = set()
- # удалить дубликаты из списка введенных слов, которые сразу же переведены в lowercase
- inp = list(OrderedDict.fromkeys(map(str.lower, (map(str.strip, stdin.readlines())))))
- for key in inp:
- words = []
- d.setdefault(key, words)
- for value in inp:
- # проверка - является ли анаграммой и не было ли использовано ранее
- if is_anagram(value, key) and key != value and key not in used_values:
- words.append(value)
- used_values.add(value)
- if not words:
- del d[key]
- for key in d:
- print(key, *d[key])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement