acwing 776 字符串移位问题
解题思路(substr + find)
我们定a为大串,b为小串。
然后分两种情况,要么刚开始就可以在a里find b
要么经过位移才能find b
后者很容易实现,即枚举每个位移后的大串。
ac✅️代码
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
int main()
{
string a,b;
cin>>a>>b;
if(a.size() < b.size()) swap(a, b);
if(a.find(b) != string::npos)
{
cout<<"true"<<endl;
return 0;
}
for(int i = 1 ; i < a.size() ; i ++)
{
string ori1 = a.substr(0,i);
string ori2 = a.substr(i , a.size() - i);
string cur = ori2 + ori1;
if(cur.find(b) != string::npos)
{
cout<<"true"<<endl;
return 0;
}
}
cout<<"false";
return 0;
}

浙公网安备 33010602011771号