DOKICODE
書斎

文字列とオートマトン

全位置を一つずつ確かめるより速く文字列を照合・比較するための、定番のアルゴリズムです。KMP と Z アルゴリズムはパターンを線形時間で見つけ、Manacher は回文を見つけ、ローリングハッシュは部分文字列どうしを定数時間で比較できます。

9 章 31 問で、いちばん小さな問題集です。KMP、Z アルゴリズム、Manacher、ローリングハッシュ、最小回転、Aho-Corasick、接尾辞配列と接尾辞オートマトン、部分列オートマトン、発展テクニックの順に並んでいます。解説でこれらの名前を見かけて、実際の問題で手を動かしてみたい人に向いています。

31 問レーティング 1167–26059 章
書斎を開く

誰かと一緒にこの問題集を進めたいなら、ログインして書斎を開いてみてください。ヒロインが一問ずつ出題してくれます。

一、KMP(Prefix の Suffix)

二、Z-Function(Suffix の Prefix)

§2.2 LCP array

問題レーティング
2430. Maximum Deletions on a String2102

三、Manacher Algorithm(回文)

四、Rolling Hash

五、最小表現

七、Aho-Corasick Automaton

§7.1 基礎

問題レーティング
1032. Stream of Characters1970
1408. String Matching in an Array1223

八、Suffix Array / Suffix Automaton

九、Subsequence Automaton

§9.1 基礎

問題レーティング
792. Number of Matching Subsequences1695

十、その他

§10.1 発展

問題レーティング
466. Count the Repetitions未評価

トラック 1 の最後の問題集で、主要セクションを終えるとルートは再帰を使うトラック 2 へ進みます。

レーティングは zerotrac さんによる LeetCode コンテストレーティングです。zerotrac のレーティングがない問題は「未評価」と表示されます。

書斎を開く