776字符串移位包含问题
作者:
什么意思O_o
,
2024-10-28 19:11:00
,
所有人可见
,
阅读 1
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
string a,b;
cin>>a>>b;
if(a.size()<b.size()) swap(a,b);
for(int i=0;i<a.size();i++) //先循环移位a,把a能出现的几种情况都枚举出来
{
a=a.substr(1)+a[0]; //移位方法:把a的第0个位置移到最后。用substr()把第0个位置去掉,从1开始到最后位置,再加上a[0]
for(int j=0;j+b.size()<=a.size();j++) //枚举b是不是a中的子串
{
int k=0; //k是遍历所有位置是不是相等
for(;k<b.size();k++)
if(a[j+k]!=b[k]) //说明存在某个位置不想等
break; //则循环立即结束
if(k==b.size()) //如果相等,说明遍历完所有b字符串都没有发现不同,则b与a相等
{
puts("true");
return 0;
}
}
}
puts("false");
return 0;
}