NYOJ 5 Binary String Matching 字符串匹配

英文题 用谷歌翻译了下


二进制字符串匹配

时间限制: 3000 ms | 内存限制: 65535 KB
难度: 3
描述
给定两个字符串A和B,其字母只包含“0”和“1”。你的任务只是告诉A出现多少次B的子串?例如,文本字符串B为'1001110110',而模式字符串A为'11',则应输出3,因为模式A出现在
输入
第一行仅包含一个整数N,表示N个情况。在每种情况下,有两行,第一行给出字符串A,长度(A)<= 10,第二行给出字符串B,长度(B)<= 1000.保证B始终为长于A.
输出
对于每种情况,输出一行包含一个整数,表示B出现多少次为A的子字符串。
样例输入
3 
11 
1001110110 
101 
110010010010001 
1010 
110100010101011
样例输出
3 
0 
3


数据比较普通 用两个循环就能AC

#include
#include
int main() {
  char a[11], b[1001];
  int n;
  scanf("%d", &n);
  while(n--) {
    int count = 0;
    scanf("%s%s", a, b);
    for(int i = 0; i < strlen(b); i++) {  
      int temp = 1;     
      for(int j = 0; j < strlen(a); j++)
        if(b[i+j] != a[j]) temp = 0;
      if(temp) count++;
    }
    printf("%d\n", count);
  }
}



你可能感兴趣的:(nyoj)