给定一个字符串,把它首尾相连形成字符环,然后从某个点开始的字符串字典序最小,为该字符串的最小表示
最小最大的区别就是在第9行的>和<符号
最小
int mininum(char sec[]) {
int n=strlen(sec);
int k=0,i=0,j=1;
while(k<n&&i<n&&j<n) {
if(sec[(i+k)%n]==sec[(j+k)%n]) {
k++;
}
else {
sec[(i + k) % n] > sec[(j + k) % n] ? i = i + k + 1 : j = j + k + 1;
if (i == j) j++;
k = 0;
}
}
i=min(i,j);
return i;
}
最大
int mininum(char sec[]) {
int n=strlen(sec);
int k=0,i=0,j=1;
while(k<n&&i<n&&j<n) {
if(sec[(i+k)%n]==sec[(j+k)%n]) {
k++;
}
else {
sec[(i + k) % n] <sec[(j + k) % n] ? i = i + k + 1 : j = j + k + 1;
if (i == j) j++;
k = 0;
}
}
i=min(i,j);
return i;
}