Для заданной входной строки длиной до 25 символов, состоящей из символов A-Z, выведите ее индекс в отсортированном по алфавиту списке всех возможных анаграмм входной строки. Входная строка не чувствительна к регистру. Вводимые символы могут повторяться. Приложение должно завершиться менее чем за 500 мс и занять менее 1 ГБ памяти.
На первый взгляд кажется, что это невозможно сделать без произвольной математической библиотеки точности. В худшем случае ввод состоит из 25 уникальных символов, в результате получается 25! возможные анаграммы. 25! на порядки больше, чем 2 ^ 64. Поскольку связь между индексами и строками не является прямой и должна быть вычислена, нет способа просто преобразовать строку в число.
Это исходит из интервью, которое я получил на днях. Я не мог придумать для них решения, и они настаивали на том, что действительно есть хорошее решение...