题目描述
- k先设置为0
- 在循环中去匹配字符串 一旦出现不匹配的字符立即结束循环
- 如果k不为b的长度则说明匹配不成功 上面的循环提前结束了
如果k等于b的长度则说明匹配成功 可以直接输出true
样例
#include <iostream>
#include <cstring>
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.substr(i)+a.substr(0,i);
for(int j=0;j+b.size()<=a.size();j++)
{
int k=0;
for(;k<b.size();k++)
{
if(a[j+k]!=b[k])// 出现不匹配的字符,无需继续遍历
break;
}
if(k==b.size())
{
puts("true");
return 0;
}
}
}
puts("false");
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla