标签:i++ har ima 例题 str code char 贪心 字典
用于求一个串的字典序最小的循环串
详见oi-wiki 最小表示法
算法思想是贪心。
int findmin(char *s) {
int k = 0, i = 0, j = 1;
while (k < n && i < n && j < n) {
if (s[(i + k) % n] == s[(j + k) % n]) {
k++;
} else {
//核心代码,注意i和j的转跳。
if(s[(i + k) % n] > s[(j + k) % n]) i = i + k + 1;
else j = j + k + 1;
if (i == j) i++;
k = 0;
}
}
return min(i, j); //较小的那个值保证是对的
}
标签:i++ har ima 例题 str code char 贪心 字典
原文地址:https://www.cnblogs.com/limil/p/12695010.html