Два слова называются анаграммы, если они имеют те же буквы, точно такой же номер раз.
Проверка на анаграммы для сортировки писем обоих слов и проверить равенство:
sort_letters(word1) == sort_letters(word2)
Теперь, чтобы найти все анаграммы данного словаря слово сказать word1
, я хотел бы найти все слова словарь, для которого выполняется вышеуказанный тест. Чтобы оптимизировать поиск, мы можем просто найти слова из такой же длины.
Если мы должны сделать это несколько раз лучше, чтобы сделать некоторые предобработки. Мы можем построить что-то вроде HashMap
, где мы бы нарисовали string
набор strings
, который является анаграммами. Что-то вроде:
Bad ==> Dab
Cat ==> Act, Tac
.....
Теперь дано любое слово я могу посмотреть в hashMap
, чтобы получить все свои анаграммы.
google для «wordlist», и вы найдете множество списков английских слов. – Amber