

注意:这里魔法手环是环形的,我们该如何解决子串问题呢?

我用颜色线段标记的是一个个环形字串
代码:
#include <bits/stdc++.h>
using namespace std;
string a,k[1000001];
int len,kl;
int main()
{
cin>>a;
len = a.size();
a += a;
for(int i = 0; i < len; i++) k[kl++] = a.substr(i,len);//滑动窗口算法求所有环形字串,i代表开始位置
sort(k,k + kl);//字典序
cout<<k[0];
return 0;
}
本文介绍了一种解决魔法手环子串问题的方法,通过滑动窗口算法获取所有可能的环形子串,并使用字典序对它们进行排序,最终输出最小的环形子串。
1493

被折叠的 条评论
为什么被折叠?



