По заданному строковому массиву , верните все группы строк, которые являются анаграммами.
Мои решения:
Для каждого строкового слова в массиве отсортируйте его O (m lg m), m - средняя длина слова.
Создайте хэш-таблицу <строка, список>.
Поместите отсортированное слово в хеш-таблицу в качестве ключа, а также сгенерируйте все перестановки (O (m!)) Слова, найдите каждую перестановку в словаре (карта дерева префиксов) с помощью O (m), если это в словаре поместите (O (1)) его в хеш-таблицу, чтобы все перестановочные слова помещались в список с одним и тем же ключом.
Всего O (n * m * lg m * m!) Времени и O (n * m!) Пространства, n - размер данного массива.
Если m очень велико, это неэффективно, m! .
Есть ли лучшие решения?
спасибо