最小表示法¶
约 5 个字 24 行代码
int minStr(string s)
{
int i=0,j=1,n=s.size();
for(int k=0;i<n && j<n && k<n;)
{
if(s[(i+k)%n]<s[(j+k)%n])
{
j=j+k+1;
k=0;
if(i==j)
j++;
}
else if(s[(i+k)%n]>s[(j+k)%n])
{
i=i+k+1;
k=0;
if(i==j)
j++;
}
else
k++;
}
return min(i,j);
}