Я пытаюсь построить структуру данных для решателя словесных игр.
Мне нужно сохранить около 150 000 наборов в форме {A, A, D, E, I, L, P, T, V, Y}. (Это нормализованные английские слова, т. Е. Отсортированные символы. Обратите внимание, что это мультимножество , которое может содержать одну и ту же букву дважды. )
Необходимо эффективно получить ответ «да / нет» на следующий тип запроса: существуют ли какие-либо наборы с данным подмножеством? Например, содержит ли какое-либо из известных слов набор {D, E, I, L, L, P}?
Требования:
Есть ли какая-нибудь структура данных, которая бы хорошо удовлетворяла эту потребность? Это немного отличается от других вопросов о сопоставлении наборов в StackOverflow тем, что целевые наборы фактически являются мультимножествами.