首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【南理oj】5 - Binary String Matching(水)

【南理oj】5 - Binary String Matching(水)

作者头像
FishWang
发布2025-08-26 19:26:41
发布2025-08-26 19:26:41
12700
代码可运行
举报
运行总次数:0
代码可运行

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. 样例输入

代码语言:javascript
代码运行次数:0
运行
复制
3
11
1001110110
101
110010010010001
1010
110100010101011 

样例输出

代码语言:javascript
代码运行次数:0
运行
复制
3
0
3 

来源 网络 上传者 naonao

挺简单的。

代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
#include <cstdio>
#include <cstring>
char base[14];
char pr[1111];
int l1,l2;
bool check(int n)
{
	for (int i=0;i<l1;i++)
	{
		if (base[i]!=pr[n++])
			return false;
	}
	return true;
}
int main()
{
	int u;
	int l;
	int ans;
	scanf ("%d",&u);
	while (u--)
	{
		scanf ("%s",base);
		scanf ("%s",pr);
		l1=strlen(base);
		l2=strlen(pr);
		l=l2-l1;
		ans=0;
		for (int i=0;i<=l;i++)
		{
			if (check(i))
				ans++;
		}
		printf ("%d\n",ans);
	}
	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Binary String Matching
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档