Solution
初看这道题,诶,有点难度,果然是 Div.1 + Div.2
的难度啊,AC 自动机?
啊不不不,完全可以不用 AC 自动机。
可以发现,只需要查找第一个字母是否出现在后面即可。
设字符串为
如果
实际上
所以只需要依次删除字符串的第一个字符,只要在后面找到,就说明这个字符必定是在当前最长前缀里头的,且之后的字符都可以依次删除。
那么,
时
1 |
|
初看这道题,诶,有点难度,果然是 Div.1 + Div.2
的难度啊,AC 自动机?
啊不不不,完全可以不用 AC 自动机。
可以发现,只需要查找第一个字母是否出现在后面即可。
设字符串为
如果
实际上
所以只需要依次删除字符串的第一个字符,只要在后面找到,就说明这个字符必定是在当前最长前缀里头的,且之后的字符都可以依次删除。
那么,
时
1 |
|