//这里目前只是记录板子,具体算法内容可自行搜索
最小表示法:
对于一个字符串,将其看作一个首尾相连的环型。
我们要做的就是找到这个环中从顺时针序中字典序最小的字符链。
举例:cba 答案: abc
思路:
我们对字符进行对比,较小的字符作为首字符的字典序一定较小。
所以我们对比两段子串,遇到字符不同的时候,就将大的那个下标后移。
int get_min()
{
// 先复制一份到尾部
for (int i = 1; i <= n; i++)
{
s[n + i] = s[i];
}
int i = 1;
int j = 2;
int k = 0;
while (i <= n && j <= n)
{
for (k = 0; k < n && s[i + k] == s[j + 1]; k++)
;
s[i + k] > s[j + k] ? i = i + k + 1 : j = j + k + 1;
if (i == j)
{
j++;
}
}
return min(i, j);
}
字符串哈希:
```