int getmin (char *S){
int s_len = strlen (s);
int i = 0;
int j = 1;
int k = 0;
while(i < n && j < n && k < n){
int t = S[(i + k) % s_len] - S[(j + k) % s_len];
if (!t) k++;
else {
if (t>0) {
i += k + 1;
}
else {
j += k + 1;
}
if (i == j) j++;
k = 0;
}
}
return min (i, j);
}
讲解的超详细,一杯忘了的时候看一下