したがって、文字列のすべての可能な順列を取得する必要があります。
私が今持っているのはこれです:
def uniq_permutations string
string.split(//).permutation.map(&:join).uniq
end
さて、私の問題は何ですか:このメソッドは小さな文字列には問題なく機能しますが、サイズが15、場合によっては20のような文字列でも使用できるようにしたいと考えています。また、このメソッドでは大量のメモリ(> 1gb)を使用します。 )そして私の質問は、それほど多くのメモリを使用しないように何を変更できるかということです。
順列を生成するためのより良い方法はありますか?それらをファイルシステムに永続化し、必要なときに取得する必要がありますか(これによりメソッドが遅くなる可能性があるためではないことを願っています)?
私に何ができる?
アップデート:
実際には、結果をどこにでも保存する必要はありません。テーブル内でそれぞれを検索して、結果が存在するかどうかを確認する必要があります。