SがTを部分文字列として何個含むか求めよ。文字)というタプルの列として与えられる。c)はaaabbccccという文字列を表す。このようにすると、TがSの部分文字列として現れるならば対応箇所のタプル列の長さがSとTで等しくなる。これによって以下のような場合分けができる。Tのタプル列の長さが1の場合これは単純にSの要素をひとつずつ見ていって愚直に数えれば良い。Tのタプル列の長さが2の場合これもSの要素を2つずつ見ていけば数えられる。Tのタプル列の長さが3以上の場合このときSのある箇所がTの部分文字列であるための条件はすべてのタプルについて、文字が一致する両端以外のタプルについて、回数が一致する両端のタプルについて、Sの回数がTの回数以上であるのすべてが満たされることである。このような部分をSから見つけ出すためには文字だけに着目して文字列検索を行い、Sの中でTと一致する箇所を列挙する(両端以外の)回数だけに注目して「数字列」の検索を行い、Sの中でTと一致する箇所を列挙する以上2つの前処理を行っておけばよい。前者で列挙した文字列一致インデックスを舐めていき、後者で列挙した数字列インデックスに対応する箇所(両端以外の列)が存在しているか、またS側の両端の回数はTの両端の回数と一致しているかを確認する。すべて満たされていればカウント+1となる。len(T))でできる。(1)はてなブログをはじめよう!fluffyowlさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。