NYOJ 5 Binary String Matching 字符串匹配
2017-08-18 21:05
447 查看
英文题 用谷歌翻译了下
时间限制: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的子字符串。
样例输入
样例输出
数据比较普通 用两个循环就能AC
#include<stdio.h>
#include<string.h>
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);
}
}
二进制字符串匹配
时间限制: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<stdio.h>
#include<string.h>
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 5 Binary String Matching (kmp 字符串匹配)
- NYOJ 5 Binary String Matching (kmp 字符串匹配)
- NYOJ 5 Binary String Matching
- NYOJ 5-Binary String Matching
- nyoj 5 Binary String Matching 【裸kmp】
- nyoj5Binary String Matching
- nyoj-5 Binary String Matching
- NYOJ5 Binary String Matching
- nyoj5 Binary String Matching(KMP)
- NYOJ 题目5 Binary String Matching
- NYOJ-5 Binary String Matching
- NYOJ-5-Binary String Matching
- NYOJ-Binary String Matching
- NYOJ 5 Binary String Matching
- NYOJ5 Binary String Matching ——KMP
- nyoj 5Binary String Matching
- NYOJ Binary String Matching
- NYOJ 5 Binary String Matching
- NYOJ题目5---Binary String Matching
- nyoj 5 Binary String Matching(kmp)