当前位置: 首页 > news >正文

PTA 串的算法设计 5 BF匹配算法(单次匹配)

作者 张鏖烽

单位 湖南工程学院

设计一个简单匹配算法(BF匹配算法)BF_Match(SqString *s,SqString *t):匹配模式串t在目标串s中的位置,匹配成功返回开始的位置,否则返回-1;

函数接口定义:

int BF_Match(SqSteing *s,SqString *t);//匹配模式串t在目标串s中的位置;

其中t为模式串,s为目标串;

裁判测试程序样例:

#include<stdio.h> #include<malloc.h> #define MaxSize 100 typedef struct{ char data[MaxSize]; int length; }SqString; void Init_SqStr(SqString *&s) { s=(SqString *)malloc(sizeof(SqString)); s->length=0; } void Create_SqStr(SqString *&s,char cstr[]) { int i; for(i=0;cstr[i]!='\0';i++) s->data[i]=cstr[i]; s->length=i; } int BF_Match(SqString *s,SqString *t); int main() { char cstr[MaxSize]; int i; SqString *s,*t; Init_SqStr(s); Init_SqStr(t); scanf("%s",cstr); Create_SqStr(s,cstr); scanf("%s",cstr); Create_SqStr(t,cstr); i=BF_Match(s,t); if(i==-1) printf("匹配失败!"); else printf("匹配成功!模式串t在目标串s中开始的位置为:%d",i); return 0; } /* 请在这里填写答案 */

输入样例:

在这里给出一组输入。例如:

bacdabcdefgh abcde

输出样例:

在这里给出相应的输出。例如:

匹配成功!模式串t在目标串s中开始的位置为:4

参考代码:

int BF_Match(SqString*s,SqString*t){ int i=0,j=0; while(i<s->length&&j<t->length){ if(s->data[i]==t->data[j]){ i++;j++; }else{ i=i-j+1; j=0; } } if(j==t->length){ return i-j; }else{ return -1; } }
http://www.cnnetsun.cn/news/1249912.html

相关文章:

  • AI编程能力边界探索:基于 Claude Code 的 Spec Coding 项目实战|得物技术
  • 告别论文焦虑:Paperxie 降重 + 降 AIGC 双效方案,让学术写作更从容
  • 突破游戏本性能桎梏:OmenSuperHub的智能调控技术革命
  • 【面试核心】Spring Boot 高频考点全解析(整合版)
  • 文件操作(一)
  • Xilinx AXI UART Lite IP核实战仿真例程(非example)
  • RabbitMq高级篇
  • 企业AI大脑是什么?企业落地前先回答的 5 个关键问题
  • 干货合集:AI论文工具,专科生专属!千笔AI VS 知文AI
  • 复合文件工具
  • 4步实现高效直播内容保存:面向内容创作者的抖音直播下载与管理工具
  • Buildozer:Python跨平台应用打包工具实战指南
  • 2026 3 12 前端学习
  • Matlab与Simulink联合仿真验证车辆运动学模型:以车速和前轮转角为输入,对比Cars...
  • 解决git重复提交历史记录 的问题
  • 金三银四网络安全求职全攻略:抓住327万人才缺口,精准斩获高薪Offer
  • 考虑阶梯式碳交易机制与电制氢的综合能源系统热电优化 关键词:碳交易 电制氢 阶梯式碳交易 综合...
  • 精准对接消费升级,织造行业开启“智变”新征程
  • 哈曼曲线的分析及不同设备运用
  • 分享|聊一聊AIGC应用工程师报考|抢占“技术+业务”复合型人才新风口
  • 高通量计算:Ni-xCr-yAl合金成分空间中液相线、固相线及相含量变化实例
  • 字符串反转//统计字符串中字符类型及频次
  • 泰国工程展代理靠谱推荐:3大维度解析企业参展合作决策
  • 微软发布:工业级Agent落地方案RDAgent
  • Python基于flask-django汽车预销售管理系统的设计与实现四个角色
  • Spring AI 集成 vLLM 部署 Qwen3.5:关闭思考过程实战
  • 安装PyQt5报错‘qmake‘,
  • 计算机毕业设计springboot社区信息管理系统 基于SpringBoot的智慧社区综合服务平台设计与实现 SpringBoot框架下的小区数字化治理系统开发
  • MySQL Access denied for user ‘root‘@‘localhost‘ (using password: YES) 出现这个可能是mysql有多个任务在进行
  • WAF规则配置误区:10大常见防护漏洞,90%的人都踩过