传送门:>HDU2203亲和串
看到题目思路直接就是暴力环形队列,结果很明了,直接超时。
想着优化之时,看到了旋转字符串的问题,思路来了(其实很简单,竟然没想到,再次面壁三分钟):
判断sub是否为s的亲和串,其实只要判断sub是否为s+s的子串便行!
AC代码如下:
#include<string>
using namespace std;
int main()
{
string s,sub;
while(cin>>s>>sub)
cout<<(((s+s).find(sub)==4294967295)?"no":"yes")<<endl;
return 0;
}