#include<cstdio> #include<iostream> #include<algorithm> using namespace std; char s[200010]; int main() { int t; scanf("%d",&t); while(t--) { int n; scanf("%d %s",&n,s+1); for(int i=1;i<n;i++)s[i+n]=s[i]; int i=1,j=2;//指向两个不同的位置 for(int k=0;k<=n&&i<=n&&j<=n;) { if(s[i+k]==s[j+k]) //向后移动 k++; else { if(s[i+k]>s[j+k]) //从i到i+k这段都不可能是最小表示 i=i+k+1; else j=j+k+1; if(i==j) //i,j应互不相同 j++; k=0; } } printf("%d ",min(i,j)-1); } return 0; }