3

文字 A ~ Z で構成される最大 25 文字の長さの入力文字列が与えられると、そのインデックスを、入力文字列のすべての可能なアナグラムのアルファベット順に並べ替えられたリストに出力します。入力文字列は大文字と小文字を区別しません。入力文字を繰り返すことができます。アプリは 500 ミリ秒未満で完了し、1 GB 未満のメモリを使用する必要があります。

一見すると、これは任意精度の数学ライブラリなしでは不可能に見えます。最悪の場合の入力は 25 の一意の文字であり、結果として 25 になります! 可能なアナグラム。25!は 2^64 より桁違いに大きい。インデックスと文字列の関係は直接的ではなく、計算する必要があるため、単純に文字列を数値に変換する方法はありません。

これは、先日受けた面接の課題から来ました。私は彼らのための解決策を思いつくことができませんでした、そして彼らは確かに良い解決策があると主張しました...

4

1 に答える 1