文字列検索アルゴリズムは、より大きなテキスト(文字列) 内で特定のパターン(部分文字列) の出現を見つけるために使用されます。 このアルゴリズムは、テキストの処理、検索、および操作のタスクにおいて重要な役割を果たします。
使い方
- 検索するテキスト(文字列) とパターン(部分文字列) から始めます。
- テキストを一度に 1 文字ずつ繰り返します。
- テキスト内の各文字について、パターンの最初の文字と比較します。
- 一致するものがあった場合は、後続の文字もパターンと一致するかどうかを確認します。
- パターンが完全に一致した場合は、一致の開始位置を記録します。
- テキスト内のパターンの検索を続けます。
例
テキスト:「ababcababcabcabc」とパターン:「abc」を考えてみましょう。
- 位置 0 から開始します。「a」をパターンの最初の文字「a」と比較します。
- 一致が見つかったら、次の文字に移動します。「b」と「b」、「a」と「c」。
- 「b」と「a」、「a」と「b」、「b」と「c」のマッチングを続けます。
- 位置 2 で試合が失敗しました。
- もう一度位置 3 から開始します。「a」をパターンの最初の文字「a」と比較します。
- 成功した一致: 「a」と「a」、「b」と「b」、「c」と「c」。
- 位置 3 を記録します。
パターン「abc」は位置 0、6、および 9 にあります。
C++ のコード例
この例では、この stringSearch
関数を使用して、テキスト「ababcababcabcabc」内でパターン「abc」が出現する箇所を検索します。 結果は、一致の開始位置を含むベクトルになります。