KMP算法解决病毒检测问题
一、串的匹配方法简单介绍
我们都知道在串的匹配算法有暴力算法和KMP算法,KMP相对于效率好些(当然代码不好理解)。
二、问题引入
如果仅仅是拿病毒的DNA样本和待检测的DNA样本进行匹配的话,那我们直接引用KMP算法就可以了,但是如果病毒的序列是环状的如何处理?
三、思路介绍
目前我们需要知道这个环形如何进行匹配,如上图我们知道病毒DNA为baa的时候,baa,aab,aba,都算是中招了,所以如何得到这些不同的序列呢,我们可以给原病毒DNA串,进行copy一份然后串联起来,得到baabaa,进行截串操作baa,aab,aba最后就不用了,所以从这个我们可以知道我们需要遍历原病毒串的长度次就可以得到环状病毒的所有情况(subString截取),然后我们依次带入我们进行匹配就可以了。
四、代码演示
最终测试结果正确(如果有问题 希望大家提出来 我们共同进步)
KMP算法解决病毒检测问题相关推荐
- KMP算法之病毒检测
什么是KMP算法? KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特--莫里斯--普拉特操作(简称KMP算法).KMP ...
- C语言KMP算法之病毒检测
完整代码: 注意:这里所有数组有效信息都是从第二个数据开始. #include<stdio.h> #include<string.h> #define N 100 void g ...
- 数据结构之串:KMP算法
串:KMP算法 基本概念: KMP算法原理: KMP算法的代码实现: KMP算法的性能: 基本概念: 应用优化前提: 有部分匹配的前缀和后缀 KMP算法原理: 按普通的串的模式匹配算法,在1位置比较完 ...
- KMP算法中next数组到底有什么深意
要了解KMP首先我们回顾一下单纯暴力的BF算法 现有字符串S(a,b,a,b,a,b,f),模式串P(a,b,a,b,f),根据BF算法首先我们将子串S[1,5]与P进行匹配,若匹配失败则再进行子串S ...
- [week15] C - ZJM与纸条(选做)—— KMP算法
文章目录 题意 Input Output 输入样例 输出样例 提示 分析 总结 代码 题意 ZJM 的女朋友是一个书法家,喜欢写一些好看的英文书法.有一天 ZJM 拿到了她写的纸条,纸条上的字暗示了 ...
- KMP算法图文详解(为什么是next[0]=-1、next[j]=k和k=next[k])
文章目录 一:KMP算法解决的问题 二:详解KMP (1)暴力匹配的缺点 (2)最长相同前缀和后缀 (3)究竟怎么回溯 (3)next数组 (4)求解next数组 A:next[0]=-1 B:nex ...
- 【算法模板】轻松学会KMP算法
目录 0.前言 1. 视频理解KMP的流程 2.代码实现 3.结束语 0.前言 KMP算法是在字符串中寻找字串的算法,时间复杂度为O(n). KMP算法中有两个关键因素: next数组 匹配机制 1. ...
- 字符串匹配——KMP算法
字符串匹配--KMP算法 字符串匹配是计算机编程中最常使用到的基础算法之一.字符串匹配相关的算法很多,Knuth-Morris-Pratt(KMP)算法是最常用的之一.最近在学习KMP算法,学习了 ...
- 从头到尾理解KMP算法
转自http://saturnman.blog.163.com/blog/static/5576112010969957130/ KMP算法解决的问题是字符匹配,是由Knuth–Morris–Prat ...
最新文章
- mysql+1.6安装,CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法
- 一个简单案例,5 分钟看懂 Java Lamdba 表达式
- Spring IOC容器分析(1) -- BeanFactory
- 分组数据方差公式_统计学公式
- linkedin上看到的CRM团队信息
- html5——DOM扩展
- mfc控件位置随对话框窗口移动
- python二级考试真题_2020年海南二级建造师考试《建筑工程》真题及答案_二级建造师...
- 算法题解:找出包含给定字符的最小窗口(枚举的一般方法)
- 摄影测量学——解析法相对定向
- linux火狐怎么清除缓存文件,火狐浏览器如何设置_火狐浏览器怎样清除缓存
- java jbutton 大小_Java swing JButton的顺序和大小
- ghost u盘 linux,用U盘启动G4L备份还原linux系统用Ghost备份Windows操作系统
- html字数统计,html页面字数统计
- 彩虹网盘外链程序源码V5.1|网盘外链源码
- toLower toUpper
- git提交 [rejected] fetch first 解决办法
- 第十六章:开发工具-traceback:异常和栈轨迹-底层异常API
- 算法警告!该图片涉嫌违规不予显示
- 鲍尔默炮轰纳德拉提出的通用Windows平台战略