したがって、次の文字列がある場合:
orig_string = 'adklsdn asnien単語nsaldkngはここのasldknのlskndlです'
そして、私はそれを次のように繰り返します:
orig_string.length.times do |index1|
orig_string[index1..orig_string.length].length.times do |index2|
puts orig_string[index2..orig_string.length]
unless orig_string[index1..index2].length == 0 then puts orig_string[index1..index2] end
end
end
順序が保持された文字列の可能なすべての組み合わせを取得します。約 5,000 語の辞書を参照して、この文字列からできるだけ多くの英単語を取得しようとしています。最終的には多くの文字列を反復処理する予定なので、パフォーマンスが重要です。そのため、仲間に任せています。
ディクショナリをメモリにロードしてバイナリ検索を実行するか、それを sqlite3 データベースにロードして順列ごとにクエリを実行する方が速いでしょうか?
また、順序を維持したまま元の文字列のすべての順列を取得するより良い方法はありますか?
ありがとう!!