是一个裸的最小表示法问题
#include<iostream>
using namespace std;
int t,n;
string str;
int getmin()
{
int i=0,j=1,k=0;
while(i<n&&j<n&&k<n)
{
int temp=str[(i+k)%n]-str[(j+k)%n];
if(temp==0)
k++;
else
{
if(temp>0)
i=i+k+1;
else
j=j+k+1;
k=0;
if(i==j)
j++;
}
}
return min(i,j);
}
int main()
{
cin>>t;
while(t--)
{
cin>>str;
n=str.size();
cout<<getmin()+1<<endl;
}
return 0;
}