假设序列为环,取一光标代表在当前顺序基础上右移多少位。
判断右移后与当前顺序大小即可。
判断是否相等
int less(const char* s,int p,int q){
int n=strlen(s);
for(int i=0;i<n;i++)
if(s[(p+i)%n]!=s[(q+i)%n])
return s[(p+i)%n]<s[(q+i)%n];
return 0;
}
遍历所有可能
int ans=0;
for(int i=1;i<n;i++)
if(less(s,i,ans))ans=i;