borderとは?
状態:-
閲覧数:1,690
投稿日:2018-08-06
更新日:2018-08-10
表記
日本語
・境界
文字列 s に対し, s の接頭辞でもあり接尾辞でもある文字列
接尾辞 接頭辞の最大長
・文字列sの接尾辞(ただしs自身は除く)の中でsの接頭辞でもあるものの最大長
・文字列Sの部分文字列であって、Sの接頭辞かつ接尾辞であるような文字列のこと
・ある文字列の 接頭辞 と suffix が一致している場合、一致している prefix と suffix をその文字列の border と呼ぶ
・ただし prefix と suffix は重複する部分があってもよいが一致していてはいけない
・border が空文字でも OK
・空文字には border が存在しない
・最も幅広い border を tagged border と呼ぶ
具体例
具体例1
| 文字列 | border | 備考 |
|---|---|---|
| "ababaa" | "a" | - |
| "ababa" | "aba" | prefix と suffix で a を共有している |
| "abab" | "ab" | - |
| "aba" | "a" | - |
| "ab" | ”” | border が空文字の場合もある |
| "a" | "" | - |
| "" | null | 空文字に border は存在しない |
具体例2
| 検索文字列パターン | a | a | b | a | a | b | a | a | a |
|---|---|---|---|---|---|---|---|---|---|
| borderの数 | 0 | 1 | 0 | 1 | 2 | 3 | 4 | 5 | 2 |
| 文字列 | border | 数 |
|---|---|---|
| "a" | "" | 0 |
| "aa" | "a" | 1 |
| "aab" | "" | 0 |
| "aaba" | "a" | 1 |
| "aabaa" | ”aa” | 2 |
| "aabaab" | "aab" | 3 |
| "aabaaba" | "aaba" | 4 |
| "aabaabaa" | "aabaa" | 5 |
| "aabaabaaa" | "aa" | 2 |
具体例3
| 検索文字列パターン | な | る | べ | く | な | る |
|---|---|---|---|---|---|---|
| borderの数 | 0 | 0 | 0 | 0 | 1 | 2 |
| 文字列 | border | 数 |
|---|---|---|
| "な" | "" | 0 |
| "なる" | "" | 0 |
| "なるべ" | "" | 0 |
| "なるべく" | "" | 0 |
| "なるべくな" | ”な” | 1 |
| "なるべくなる" | "なる" | 2 |
境界 (border)
接尾辞 接頭辞の最大長
MP法とKMP法の違い
文字列の頭良い感じの線形アルゴリズムたち