基本的な文字列位置検索方法
Python は変数 .find("何を見つけるか" [, 開始位置, 終了位置]) を使用して文字列を検索します。開始位置と終了位置が空の場合は、すべて検索することを意味します。 。検索が見つかった場合、位置は 0 から計算され、見つかるたびに -1 が返されます。
単純なマッチングアルゴリズム
単純な一致アルゴリズムは、ターゲット文字列とテンプレート文字列の間の 1 対 1 の一致です。一致するものがある場合は、添え字を 1 つ右に移動します。一致しない場合は、添え字をクリアして、再度一致を開始します。
上記の印刷を追加して再度印刷してください
一致する値が存在するまでループが継続されます。主に、一致する値が存在しない場合にテンプレート文字を再度循環するため、この方法は非効率的です。最大 m * (n-m +1) 回発生する可能性があります。 m はテンプレート文字の長さ、n-m + 1 は等しくない文字を除外する回数です。
KMPアルゴリズム
kmp は、既知の一致文字によってシフトするアルゴリズムです。たとえば、上記の abb と abc を比較すると、ab がわかります。