文字列とオートマトン
全位置を一つずつ確かめるより速く文字列を照合・比較するための、定番のアルゴリズムです。KMP と Z アルゴリズムはパターンを線形時間で見つけ、Manacher は回文を見つけ、ローリングハッシュは部分文字列どうしを定数時間で比較できます。
9 章 31 問で、いちばん小さな問題集です。KMP、Z アルゴリズム、Manacher、ローリングハッシュ、最小回転、Aho-Corasick、接尾辞配列と接尾辞オートマトン、部分列オートマトン、発展テクニックの順に並んでいます。解説でこれらの名前を見かけて、実際の問題で手を動かしてみたい人に向いています。
31 問レーティング 1167–26059 章
書斎を開く
誰かと一緒にこの問題集を進めたいなら、ログインして書斎を開いてみてください。ヒロインが一問ずつ出題してくれます。
一、KMP(Prefix の Suffix)
§1.1 基礎
二、Z-Function(Suffix の Prefix)
§2.1 基礎
| 問題 | レーティング |
|---|---|
| 2223. Sum of Scores of Built Strings | 2220 |
| 3474. Lexicographically Smallest Generated String | 2605 |
§2.2 LCP array
| 問題 | レーティング |
|---|---|
| 2430. Maximum Deletions on a String | 2102 |
三、Manacher Algorithm(回文)
§3.1 基礎
| 問題 | レーティング |
|---|---|
| 5. Longest Palindromic Substring | 未評価 |
| 647. Palindromic Substrings | 未評価 |
| 214. Shortest Palindrome | 未評価 |
| 1745. Palindrome Partitioning IV | 1925 |
§3.2 中心展開法
| 問題 | レーティング |
|---|---|
| 5. Longest Palindromic Substring | 未評価 |
| 2472. Maximum Number of Non Overlapping Palindrome Substrings | 2013 |
四、Rolling Hash
五、最小表現
§5.1 基礎
| 問題 | レーティング |
|---|---|
| 899. Orderly Queue | 2097 |
| 1625. Lexicographically Smallest String After Applying Operations | 1992 |
七、Aho-Corasick Automaton
§7.1 基礎
| 問題 | レーティング |
|---|---|
| 1032. Stream of Characters | 1970 |
| 1408. String Matching in an Array | 1223 |
八、Suffix Array / Suffix Automaton
九、Subsequence Automaton
§9.1 基礎
| 問題 | レーティング |
|---|---|
| 792. Number of Matching Subsequences | 1695 |
十、その他
§10.1 発展
| 問題 | レーティング |
|---|---|
| 466. Count the Repetitions | 未評価 |
トラック 1 の最後の問題集で、主要セクションを終えるとルートは再帰を使うトラック 2 へ進みます。
レーティングは zerotrac さんによる LeetCode コンテストレーティングです。zerotrac のレーティングがない問題は「未評価」と表示されます。
書斎を開く