BFU数据结构头歌实验:基于BF算法的病毒感染检测
这道题当初我想着直接抄课本上的BF代码,结果发现书中的代码都是默认模式串和主串的下标从零开始,因此需要将书中的代码进行修改。如下图所示,需要将变量i,j的初值都设为0。然后将书中出现的i,j全部加1即可。然后这个函数中的第三个参数,pos的值我没有使用,这个无所谓,因为这道题的模式匹配都是从主串的第一个位置开始。
第一个函数的代码如下:
int Index_BF(HString P,HString V,int pos)
{//返回模式T在主串S中第pos个字符开始第一次出现的位置。若不存在,则返回值为0 //其中,T非空,1≤pos≤StrLength(S) V.length=strlen(V.ch);int i=0,j=0;while(i+1<=P.length&&j+1<=V.length){if(P.ch[i]==V.ch[j]){++i;++j;}else{i=i-j+1;j=0;}}if(j+1>V.length) {return i-V.length+1;} elsereturn 0;
}
第二个函数的算法没有什么可说的,就按照一般的环形字符串解决方法,再开一个两倍长度的数组,将模式串存储两次,再依次取字符串即可。代码如下:
bool Virus_detection(HString Virus,HString Person)
{//判断是否匹配,如果可以,返回true,否则返回false
//模式匹配算法调用Index_BF函数 int flag=0;HString temp;temp.ch=new char[200];int m=Virus.length;for(int i=m,j=0;j<m;j++){Virus.ch[i++]=Virus.ch[j];}Virus.ch[2*m]='\0';for(int i=0;i<m;i++){for(int j=0;j<m;j++){temp.ch[j]=Virus.ch[i+j];}temp.ch[m]='\0';flag=Index_BF(Person,temp,1);if(flag) break;}delete temp.ch;if(flag) return true; elsereturn false;
}
这道题当初我出现的问题是只定义了一个HString类型的temp,却没有为他分配空间,导致后面出现了内存泄露的问题。
希望能帮助到大家。
BFU数据结构头歌实验:基于BF算法的病毒感染检测相关推荐
- 数据结构头歌实验梳理
数据结构头歌实验梳理 实验一 算法表示与实现基础 1 数据交换 2 最大最小值问题 3 ADT-Complex 数据结构与算法 - 线性表 1 实现一个顺序存储的线性表 2 实现一个链接存储的线性表 ...
- AlphaBeta剪枝算法求解博弈树最优选择 头歌实验平台
AlphaBeta剪枝算法求解博弈树最优选择 头歌实验平台 前言 一.AlphaBeta剪枝是什么? 1.由来, 最大最小决策树 2.发展 3. AlphaBeta剪枝 二.实验算法伪代码 三.实验算 ...
- Java头歌实验梳理
Java头歌实验梳理 实验一:JAVA编程基础 编写一个简单Java程序,计算银行年存款的本息 编写程序完成矩阵的乘法运算 编写程序用*号输出等腰梯形 实验二:字符串 字符串的值转换成浮点型 字符转换 ...
- 基于Adaboost算法的车牌检测在OpenCV上的研究与实现
目录结构 E:\Adaboost\ ---------positive\ //正样本文件夹 ---------pimages\ //正样本图片所在文件夹 --- ...
- 【MFC基础入门】基于Adaboost算法的车牌检测在OpenCV上的研究与实现
目录结构 E:\Adaboost\---------positive\ //正样本文件夹---------pimages\ //正样本图片所在文件夹---------pos.dat //正样本集描述文 ...
- 基于Sobel算法的边沿检测设计与实现
基于Sobel算法的边沿检测设计与实现 1. 边缘检测 2. 实战演练 2.1. matlab进行灰度图像生成 2.2. sobel_ctrl控制模块 2.3. vga显示模块 2.4. 顶层模块实例 ...
- YOLOv7如何提高目标检测的速度和精度,基于优化算法提高目标检测速度
目录 一.学习率调度 二.权重衰减和正则化 三.梯度累积和分布式训练 1.梯度累积 2.分布式训练 四.自适应梯度裁剪 大家好,我是哪吒. 上一篇介绍了YOLOv7如何提高目标检测的速度和精度,基于模 ...
- 基于DCT算法的图像模糊检测
文章目录 基于DCT算法的图像模糊检测 1.离散余弦变换DCT 2.基于离散余弦变换DCT来估计图像模糊度的图像质量评价算法 总结 基于DCT算法的图像模糊检测 转载: https://yinguob ...
- Linux操作系统实用功能,简单易操作 头歌实验一
2022头歌平台操作系统实验一 实验(1):Linux操作系统基本使用 实验(2):Linux之C编程入门 文章目录 2022头歌平台操作系统实验一 前言 一.Linux操作系统基本使用 二.C编程入 ...
- 算法复现 - 病毒感染检测(案例4.1算法4.5)
第1关:案例4_1 病毒感染检测 #include <iostream> #define maxsiz 20 #include<string.h> using namespac ...
最新文章
- Windows下Go语言的安装和运行
- Java 条件运算符
- 35+ Top Apache Tomcat Interview Questions And Answers【转】
- thymeleaf入门简介
- 「Docker」Docker教程+学习笔记
- html div 自动聚焦,让DIV也能够获取焦点
- RED5 安装及问题
- 理解Promise的3种姿势
- (8)USB协议 —— 高速模式握手过程
- 软件工程投资回收率计算
- 无主之地2 不费子弹手枪
- vscode登陆中国版leetcode
- python中forward的参数_ip_forward参数对Linux内核转发影响分析
- 收藏一个快要消亡的技术古董
- apt-get update和apt-get upgrade的区别
- appletviewer
- 故障处理 软件 需求_软件的质量模型(二)
- 批处理 修改注册表 禁用USB
- JS使用普通队列实现击鼓传花游戏
- 第18课:生活中的外观模式——学妹别慌,学长帮你