NYOJ 5 바 이 너 리 문자열 매 칭 (데이터 구조)

1593 단어 데이터 구조nyoj
Binary String Matching
시간 제한:
3000 ms  |  메모리 제한:
65535 KB
난이도:
3
묘사 하 다.
Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B? For example, the text string B is ‘1001110110’ while the pattern string A is ‘11’, you should output 3, because the pattern A appeared at the posit
입력
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.
출력
For each case, output a single line consist a single integer, tells how many times do B appears as a substring of A.
샘플 입력
3
11
1001110110
101
110010010010001
1010
110100010101011 

샘플 출력
3
0
3 

근원
네트워크
업로드 자
naonao
사고방식: 간단하게 비교 하면 돼. 돌 이 켜 보면 나 도 데이터 구조 와 무슨 관계 가 있 는 지 모 르 겠 어.
#include<stdio.h>
#include<string.h>
int main(){
	int n,sum,i,j,flag,alen,blen;
	char a[11],b[1001];
	scanf("%d
",&n); while(n--){ memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); gets(a); alen=strlen(a); gets(b); blen=strlen(b); sum=0; for(i=0;i<(blen-alen+1);i++){ flag=1; for(j=0;j<alen;j++) if(b[i+j]!=a[j]) { flag=0; break; } if(flag==1) sum++; }//flag=0 ,flag=1 a b printf("%d
",sum); } return 0; }

좋은 웹페이지 즐겨찾기