码迷,mamicode.com
首页 > 其他好文 > 详细

简单字符串

时间:2020-01-09 15:59:45      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:维护   循环   暴力   指针   line   下标   一个   最小   简单   

最小循环表示法

先把串倍长,维护两个指针\(i,j\)表示可能的最小循环表示的起始位置。
暴力求出\(k=lcp(i,j)\),然后比较\(s_{i+k},s_{j+k}\)
如果\(s_{i+k}<s_{j+k}\),那么\([j,j+k]\)范围内的所有下标均不可能成为最小循环表示的起始位置,所以令\(j=j+k+1\)
如果\(s_{j+k}<s_{i+k}\),那么\([i,i+k]\)范围内的所有下标均不可能成为最小循环表示的起始位置,所以令\(i=i+k+1\)
直到\(i,j\)有一个超过了\(n\)为止。

简单字符串

标签:维护   循环   暴力   指针   line   下标   一个   最小   简单   

原文地址:https://www.cnblogs.com/cjoierShiina-Mashiro/p/12171891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!