《编程之美》第3.1节:字符串移位包含的问题
问题:给定两个字符串s1和s2,要求判定s2是否能够被s1做循环移位(rotate)得到的字符串包含。
解法:将s1字符串进行扩展后包含其移位后的所有字符串,然后进行比较即可。
代码:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string s1="AABBCD";
string s2="CDAA";
s1+=s1;
int rr=s1.find(s2,s2.size());
if(rr!=-1)
cout<<"需要左移"<<rr<<"位"<<endl;
else
cout<<"NO"<<endl;
system("pause");
return 0;
}