Один метод определения того, является ли набор символов анаграммой слова, включает использование простых чисел. Присвойте каждой букве простое число, например, a = 2, b = 3, c = 5, d = 7. Теперь предварительно вычислите произведение простых чисел для каждого слова в вашем словаре. Например, «добавить» = 2 * 7 * 7 = 98 или «плохо» = 3 * 2 * 7 = 42.
Теперь определение, является ли набор букв анаграммой какого-либо слова в словаре, может быть выполнено путем вычисления значения набора букв. Например, буквы «abd» = 2 * 3 * 7 = 42 = «плохо». Просто проверьте, существует ли вычисленное значение для букв в вашем предварительно вычисленном словаре. Для любой анаграммы вам нужно сделать это вычисление только один раз, а не пытаться сгенерировать каждую возможную анаграмму. Однако обратите внимание, что этот метод будет хорошо работать только для относительно небольших слов, в противном случае вы столкнетесь с проблемами переполнения и должны будете использовать BigInteger.