問題タブ [string-hashing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 繰り返される DNA シーケンス
問題は、与えられた DNA 配列で複数回出現する長さ k のすべての配列を見つけることです。長さ k の各シーケンスについて、ハッシュが計算され、マップに格納される、ローリング ハッシュ関数を使用するアプローチを見つけました。現在のシーケンスが繰り返しかどうかを確認するには、そのハッシュを計算し、ハッシュがハッシュ マップに既に存在するかどうかを確認します。はいの場合は、このシーケンスを結果に含めます。そうでない場合は、ハッシュ マップに追加します。
ここでのローリング ハッシュとは、ウィンドウを 1 つスライドさせて次のシーケンスに移動するときに、前のシーケンスの最初の文字の寄与を削除し、新しく追加された文字の寄与を追加する方法で、前のシーケンスのハッシュを使用することを意味します。つまり、新しいシーケンスの最後の文字です。
このアルゴリズムは完璧に見えますが、完全なハッシュ関数を作成して衝突を回避することはできません。誰かがどのような状況でも完璧なハッシュを作成する方法を説明できれば、それは大きな助けになります.
c++ - ハッシュ アルゴリズムのコンパイル中にメモリ アクセス違反エラーが発生しました
文字列をメモリに挿入中にエラーが発生しました。0xC0000005 アクセス違反エラー。配列サイズを変更しようとしたため、割り当てが正しくありませんでした。int の主要部分は、ファイルが終了するまで挿入関数に文字列の単語を送信するだけです。