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

字符串最小表示法模版

时间:2020-03-24 09:22:08      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:else   最小   while   int   字符串   break   color   bsp   str   

 1 //O(n)
 2 char s[N],ss[N*2];
 3 int n=strlen(s+1);
 4 for(int i=1;i<=n;i++)
 5     ss[i+n]=s[i];
 6 int i=1,j=2,k;
 7 while(i<=n && j<=n){
 8     for(k=0;k<n && s[i+k] == s[j+k]; k++);
 9     if(k==n) break;
10     if(s[i+k]>s[j+k]){
11         i=i+k+1;
12         if(i==j)
13             i++;
14     }
15     else{
16         j=j+k+1;
17         if(i==j)
18             j++;
19     }
20 }
21 int ans=min(i,j);
22 //b[ans] 即最小表示

 

字符串最小表示法模版

标签:else   最小   while   int   字符串   break   color   bsp   str   

原文地址:https://www.cnblogs.com/hhyx/p/12556502.html

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