#include<iostream>
using namespace std;
int min_express(char * a,int len){
int i=0,j=1; //当前比较的位置
int t; //字典序比较结果
int k=0; //偏移
while(i<len && j<len && k<len){
t=a[(i+k)%len]-a[(j+k)%len];
if(t==0)k++;
else{
if(t>0){//从i开始字典序大
i=i+k+1;
}else{
j=j+k+1;
}
if(i==j)j++;
k=0;
}
}
return (i<j?i:j);//返回靠前的,因为字典序越大越靠后;
}
环形字典序最小模板
最新推荐文章于 2022-05-08 16:06:31 发布