移位包含
题目描述:移位包含
题目描述

解题思路
字符串长度最大不过 30 30 30。
所以 O ( n 2 ) O(n^2) O(n2) 暴力枚举即可。
code
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char a[40],b[40];
int n1,n2;
int check(int t)
{
for(int i=0;i<n2;i++,t++)
{
if(t>=n1)
t=0;
if(a[t]!=b[i])
return 0;
}
return 1;
}
int main()
{
cin>>a>>b;
if(strlen(a)<strlen(b))
swap(a,b);
n1=strlen(a);
n2=strlen(b);
for(int i=0;i<n1;i++)
if(check(i))
{
printf("true\n");
return 0;
}
printf("false");
}

本文讲解了如何使用O(n^2)的时间复杂度解决字符串移位包含问题,通过暴力枚举字符匹配,适合字符串长度不超过303030的场景。代码实例详细展示了检查字符串是否可以通过字符移位达到包含关系的过程。
6133

被折叠的 条评论
为什么被折叠?



