详见http://blog.csdn.net/cclsoft/article/details/5467743
题目见http://bbezxcy.iteye.com/blog/1442252
int mini()
{
int i, j, k;
for (i = k = 0, j = 1; i < len && j < len && k < len;)
{
int t = str[(i + k) % len] - str[(j + k) % len];
if (!t)
{
k++;
}
else
{
if (t > 0)
{
i = i + k + 1;
}
else
{
j = j + k + 1;
}
if (i == j)
{
j++;
}
k = 0;
}
}
return min(i, j);
}
int great()
{
int i, j, k;
for (i = k = 0, j = 1; i < len && j < len && k < len;)
{
int t = str[(i + k) % len] - str[(j + k) % len];
if (!t)
{
k++;
}
else
{
if (t < 0)
{
i = i + k + 1;
}
else
{
j = j + k + 1;
}
if (i == j)
{
j++;
}
k = 0;
}
}
return min(i, j);
}