C++程序方法 --- 病毒感染检测
人的DNA和病毒DNA均表示成由一些字母组成的字符串序列。然后检测某种病毒DNA序列是否在患者的DNA序列中出现过,如果出现过,则此人感染了该病毒,否则没有感染。例如,假设病毒的DNA序列为baa,患者1的DNA序列为aaabbba,则感染,患者2的DNA序列为babbba,则未感染。(注意,人的DNA序列是线性的,而病毒的DNA序列是环状的)
输入格式:
输入第一行中给出1个整数i(1≤i≤11),表示待检测的病毒DNA和患者DNA的对数。 输入i行串序列,每行由两个字符串组成(字符串中不含不可见字符),两字符串之间用一个空格分隔,分别代表病毒的DNA序列和患者的DNA序列,病毒的DNA序列和患者的DNA序列长度不超过500。
输出格式:
依次逐行输出每对检测样本的结果,感染输出:YES,未感染输出:NO。
输入样例1:
1
baa bbaabbba
输出样例1:
YES
输入样例2:
2
cced cdccdcce
bcd aabccdxdxbxa
输出样例2:
YES
NO
实现代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char virus[200];
char DNA[200];
//BF算法
bool Index(char *S,char *T)
{int i=0,j=0;while(i<strlen(S) && j<strlen(T)){if(S[i]==T[j]){i++;j++;}else{i=i-j+1;j=0;}}if(j>=strlen(T))return true;else return false;
}
//字符串旋转,把病毒第一个字符变为最后一个字符
char *turn(char *T)
{char *temp=T;char tem[2]={temp[0]};strcpy(T,temp+1);strcat(T,tem);return T;
}
//判断DNA是否感染
bool judge(char *S,char *T)
{int len=strlen(T);for(int i=0;i<len;i++){if(i!=0) //第一次病毒串不需要旋转strcpy(T,turn(T));if(Index(S,T))return true;}return false;
}
int main()
{int n; scanf("%d",&n);while(n--){scanf(" %s %s",virus,DNA);//判断是否被感染if(judge(DNA,virus))printf("YES\n");elseprintf("NO\n");}return 0;
}
C++程序方法 --- 病毒感染检测相关推荐
- 从病毒感染检测谈串的模式匹配
病毒感染检测:串的模式匹配 BF.KMP算法 在网络入侵检测.计算机病毒特征码匹配以及DNA序列匹配等应用中都需要进行串的模式匹配.针对这个问题,书上讲了两种模式匹配的算法,即BF算法和KMP算法,下 ...
- Java黑皮书课后题第8章:*8.15(几何:在一条直线上吗)编程练习题6.39给出了一个方法,用于测试三个点是否在一条直线上。编写下面的方法,检测points数组中所有的点是否都在同一条直线上
*8.15(几何:在一条直线上吗)编程练习题6.39给出了一个方法,用于测试三个点是否在一条直线上.编写下面的方法,检测points数组中所有的点是否都在同一条直线上 题目 题目描述与运行示例 破题 ...
- 数据结构——基于字符串模式匹配算法的病毒感染检测
实验四 基于字符串模式匹配算法的病毒感染检测 [实验目的] 1.掌握字符串的顺序存储表示方法. 2.掌握字符串模式匹配BF算法和KMP算法的实现. [实验内容] 问题描述 医学研究者最近发现了某些新病 ...
- 程序代码错误检测_错误检测代码
程序代码错误检测 错误检测代码 (Error Detecting Codes) A group of bits is known as words, and these words move as a ...
- 基于VisualC++2010开发Windows7杀毒应用程序范例(2)---检测并遍历所有进程的线程信息...
作为一个杀毒软件,必须扫描所有的进程的每一个线程,才能分析出病毒的行为! 下面我们演示下,基于Visual C++2010开发基于Windows7杀毒应用程序范例, 检测所有的进程线程信息 打开VS2 ...
- 用c语言编写程序相似性检测,程序代码相似性检测在论文抄袭判定中的应用
摘要:现行的论文检测系统,只针对文字部分进行判定,无法判断论文中所包含的代码的独创性.理工科学生的毕业论文,通常包含的大量代码.因现行系统对代码默视为原创,而最终影响了对论文整体抄袭比例的判定,使准确 ...
- 国内android应用商城中程序隐私泄露分析,Android应用程序隐私数据泄露检测
摘要: Android智能手机中存储着用户的隐私数据,这些隐私数据泄露,会使用户蒙受经济损失及人身伤害.然而,目前第三方应用软件市场中存在许多恶意软件或漏洞软件,但现有的对Android应用软件检测技 ...
- 鸿蒙系统测试失败,ANR-WatchDog-ohos: 一个简单的监测程序,可检测到鸿蒙系统的 ANR(Application Not Response-应用程序无响应)错误并引发有意义的异常...
ANR-WatchDog-ohos 一个简单的监测程序,可检测到鸿蒙系统的 ANR(Application Not Response-应用程序无响应)错误并引发有意义的异常 项目名称:ANR-Watc ...
- python人脸检测与微信小程序_微信小程序实现人脸检测功能
本文为大家分享了微信小程序实现人脸检测的具体代码,供大家参考,具体内容如下 因为本文章的人脸检测技术运用的是百度云人工智能,首先要有百度云的账号. 近期,人脸识别已经升级到了V3,开启了测试,所以也依 ...
最新文章
- 面试官:因为这个语言,我淘汰了90%的人!!
- oracle10.2 迁移,实战:Oracle10.2.0.4异机迁移并升级到Oracle 11.2.0.4
- WEB开发中的会话控制
- Oracle关联更新语法(T-SQL中的update...from)
- nginx 1.16 配置反向代理,http,https,ssl
- android中将自己的自定义组件打成JAR包
- PowerDesigner生成数据库设计文档
- 桥牌笔记:让敌方的Q、J、10、X只拿一墩的打法
- vtkDataObject 与vtkImageData
- python transform(img)_pytorch之ImageFolder使用详解
- Win 10 没有 Hyper-V 解决方案
- 全景视频拼接(三)--并查集法及源码分析
- 制作LINUX安装DEB,脚本中的函数报错怎么办?
- 麻瓜python视频教程_2019年最新麻瓜编程,Python商业爬虫学徒计划全套视频教程下载...
- CAS 服务端的搭建
- CMD窗口下强制删除文件
- 计算机扫描的配置文件在哪里找,打印机扫描文件到电脑哪里找
- 详细游戏建模,入门要领及学习方法。
- KeilMDK编译错误Error: L6218E: Undefined symbol __aeabi_assert (referred from xxx.o).
- Windows Mobile 6.x 下改Tahoma字体+微软雅黑说明
热门文章
- mysql limit 01怎么理解_MySQL limit实际用法的详细解析
- 网上报修系统java源码_网上报修系统管理软件
- HTML5基础教程(21)Audio(音频)
- Photoshop如何切图
- 学习和思考的一点小总结
- java 判断字符串是否包含字母_Java中判断某一字符串是否包含数字、字母和中文...
- 2021年中国航天发射列表(55发见证历史)
- NSGA-II算法阅读笔记
- c语言课设航班信息管理软件管理系统,c语言航班信息查询系统实验报告.doc
- Postgres忘记密码如何修改密码