网址:http://acm.nyist.net/JudgeOnline/problem.php?pid=5
描述
-
输入
- The first line consist only one integer N, indicates N cases follows. In each case, there are two lines, the first line gives the string A, length (A) <= 10, and the second line gives the string B, length (B) <= 1000. And it is guaranteed that B is always longer than A. 输出
-
3 11 1001110110 101 110010010010001 1010 110100010101011
样例输出
-
3 0 3
第一个字符串是子串,所以我们要在第二个字符串中找第一个字符串,又因为数组很小,所以我们完全可以用循环结构来解决这个问题,实际上我也确实只用了0ms
For each case, output a single line consist a single integer, tells how many times do B appears as a substring of A.
样例输入#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=1000+10;
char s1[maxn],s2[maxn];
int cnt;
void match()
{
int pos=0;
int len1=strlen(s1);
int len2=strlen(s2);
while(pos<len2)
{
bool flag=true;
for(int i=0;i<len1;i++)
if(s1[i]!=s2[pos+i]) { flag=false; break; }
if(flag) cnt++;
pos++;
}
}
int main()
{
int Test;
scanf("%d",&Test);
while(Test--)
{
cnt=0;
scanf("%s%s",s1,s2);
match();
printf("%d\n",cnt);
}
return 0;
}