代码如下:
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int MAXN = 111111; char str[MAXN<<1]; int main() { int _; scanf("%d",&_); while(_--) { int n; scanf("%d%s",&n,str); for(int i = 0;i < n;i++) str[n+i] = str[i]; str[n+n] = '\0'; int i = 0,j = 1,len = 0; while(i < n && j < n) { if(str[i+len] == str[j+len]) { len++; if(len == n) break; } else { if(str[i+len] < str[j+len]) j = j+len+1; else i = i+len+1; if(i == j) j++; len = 0; } //printf("i = %d,j = %d,len = %d\n",i,j,len); } printf("%d\n",min(i,j)); } return 0; }