Я делаю небольшой проект (на Java), пока uni отсутствует, просто чтобы проверить себя, и я наткнулся на камень преткновения.
Я пытаюсь написать программу, которая будет считывать из текстовой версии словаря, сохранять ее в ds (структуре данных), а затем запрашивать у пользователя случайную строку (желательно бессмысленную строку, но только буквы и -'s , ни цифр, ни других знаков препинания — меня больше ничего не интересует), узнать все анаграммы введенной строки, сравнить ее со словарем ds и вернуть список всех возможных анаграмм, которые есть в словаре.
Хорошо, для шагов 1 и 2 (чтение из словаря), когда я читаю все, я сохраняю это на карте, где ключи — это буквы алфавита, а значения — это ArrayLists, в которых хранятся все слова, начинающиеся с этой буквы. .
Я застрял в поиске всех анаграмм, я понял, как рекурсивно (с гордостью) рассчитать количество возможных перестановок, и я не уверен, как на самом деле выполнить перестановку.
Лучше разбить его на char и поиграть с ним таким образом, или разделить его и сохранить как строковые элементы? Я видел пример кода в Интернете на разных сайтах, но я не хочу видеть код, я хотел бы знать, какой подход / идеи лежат в основе разработки решения для этого, поскольку я как бы застрял, как даже начать :(
Я имею в виду, я думаю, что знаю, как я буду сравнивать со словарем ds после того, как я сгенерирую все перестановки.
Будут полезны любые советы, но не код, если можно, а просто идеи.
P.S. Если вы хотите увидеть мой код до сих пор (по какой-либо причине), я опубликую то, что у меня есть.