int n = strlen(s+1);
for(int i = 1; i <= n; i++) s[n+i] = s[i];
int i = 1, j = 2, k;
while(i <= n && j <= n){
for(k = 0; k <= n && s[i+k] == s[j+k]; k++);
if(k == n) break;//S只由一种字符构成,形如"aaaaa"
if(s[i+k] > s[j+k]) {
i = i + k + 1;
if(i == j) i++;
}else {
j = j + k + 1;
if(i == j) j++;
}
}
ans = min(i,j);
大神们真猛,嘿嘿