При вводе 100000 строк код работает чуть больше 4 секунд, а максимум 4 сек. Если решили писать в ТГ. Анагра́мма (от греч. ανα- — «пере» и γράμμα — «буква») — литературный приём, состоящий в перестановке букв или звуков определённого слова (или словосочетания), что в результате даёт другое слово или словосочетание (Википедия). Мы будем работать с набором слов. Ваша задача — выписать все слова, которые являются анаграммами друг для друга, например «замок» и «мазок». Проверка слов должна быть регистронезависимой. Слова, для которых анаграммой является только оно само, выписывать не нужно, даже если это слово встречается в тексте в разном регистре. Формат ввода В первой строке идёт целое число n (1 ≤ n ≤ 100 000), количество исходных слов. Далее следует n слов, по одному слову в строке, слова могут идти в разном регистре! Формат вывода В одной строке должны идти слова, которые являются анаграммами друг для друга, в нижнем регистре, через пробел. Порядок слов — лексикографический (как в словаре). Порядок строк так же лексикографический. Пример Ввод 11 окорок петлей Плетей рококо теплей Тишь ТОМНО тонко тонок тоном шить Вывод окорок рококо петлей плетей теплей тишь шить томно тоном тонко тонок a, c = [input().lower() for _ in range(int(input()))], [] for i in a: b = [j for j in a if sorted(i) == sorted(j)] if len(b) > 1: c.append(b) for p in range(len([j for j in a if sorted(i) == sorted(j) and i != j])): del a[p] print(*sorted([' '.join(sorted(i)) for i in c]), sep='\n') Code a, c = [input().lower() for _ in range(int(input()))], [] for i in a: b = [j for j in a if sorted(i) == sorted(j)] if len(b) > 1: c.append(b) for p in range(len([j for j in a if sorted(i) == sorted(j) and i != j])): del a[p] print(*sorted([' '.join(sorted(i)) for i in c]), sep='\n') Thread restrictions: The topic author allowed to post messages in the topic only to the following groups (and higher ranked): Staff Members and Curators
У тебя сложность O(n^2) , тебе не нужно проходится по каждому элементу The post was merged to previous Apr 17, 2020 Можно выполнять за линейное время