[Python] クヌース–モリス–プラット法
クヌース–モリス–プラット法 クヌース–モリス–プラット法(Knuth–Morris–Pratt algorithm、KMP法と略記)とは、文字列検索アルゴリズムの一種。テキスト(文字列)Sから単語Wを探すにあたり、不一致となった位置と単語自身の情報から次に照合を...
Freedom is a responsible choice.
クヌース–モリス–プラット法 クヌース–モリス–プラット法(Knuth–Morris–Pratt algorithm、KMP法と略記)とは、文字列検索アルゴリズムの一種。テキスト(文字列)Sから単語Wを探すにあたり、不一致となった位置と単語自身の情報から次に照合を...
以下の続きです。 下の動画を参考にしています。 決定性有限オートマトンを使うと、文字列検索アルゴリズムは以下の流れで表現できます。 オートマトンを作る あるパターン\( P \)が与えられたとして、そのパターンに...
ラビン-カープ法 テキストの中からパターンを探すときに、パターンのハッシュと検索箇所のハッシュが一致するかどうかを比較して検索を行います。 ハッシュの時間計算量が \(O(m)\) の場合は、アルゴリズム全体の計算量が \(O(m \times n) \) ...
与えられた文字列の中から、パターンに一致する部分を総当たりで探します。 時間計算量は \( O(n \times m) \)、空間計算量は\( O(1) \) になります。 import random import string def match_pa...