Форум сайта python.su
Здравствуйте форумчане!
Есть интересная задача. Нужно сделать анаграмму с поданого слова. Ниже нарисовал схему слов. Правило только в том, что буквы можно использовать только столько раз, сколько они появляются в первом слове, ну и естественно только те буквы, которые были в первом слове.
Пример в закрепе: (на всякий напишу)
talking (начальное слово, которая нам предлагает программа)
из букв этого слова я могу сделать следующие анаграммы:
king
tank
link
Вот думаю как лучше это все оформить хранить слово-ключь и возможные анаграммы в json?
А может знаете какие-то библиотеки, которые хранят в себе огромный словарь и с ним можно было бы работать например через for?
Ваш вариант?
Отредактировано dendonnar (Дек. 31, 2021 11:58:37)
Прикреплённый файлы:
Illustration.png (193,6 KБ)
Офлайн
dendonnar
Вот думаю как лучше это все оформить хранить слово-ключь и возможные анаграммы в json?
dendonnarНазовём слово, которое у тебя дано изначально и из букв которого будут составляться анаграммы, понятием <базовое слово>. У тебя есть словарь существительных. Назовём его понятием <первый словарь>. Дальше из него ты делаешь словарь из тех же слов, но с отсортированными по алфавиту буквами в каждом слове. Назовём его понятием <второй словарь>. Словарь <первый словарь> и словарь <второй словарь> логически связаны построчно через номера строк. И потом при получении слова <базовое слово> ты просто пытаешься набрать по буквам слово из словаря <второй словарь> из букв слова <базовое слово>. Если ты слово из словаря <второй словарь> из букв слова <базовое слово> набрал, значит можно взять для слова из словаря <второй словарь> соответствующее слово из словаря <первый словарь>.
А может знаете какие-то библиотеки, которые хранят в себе огромный словарь и с ним можно было бы работать например через for?
dendonnarНе, пары текстовых файлов будет достаточно.
в json?
dendonnarСкачай в интернете набор английских существительных. Думаю, их там 100500 штук.
может знаете какие-то библиотеки, которые хранят в себе огромный словарь
Офлайн