人的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++程序方法 --- 病毒感染检测相关推荐

  1. 从病毒感染检测谈串的模式匹配

    病毒感染检测:串的模式匹配 BF.KMP算法 在网络入侵检测.计算机病毒特征码匹配以及DNA序列匹配等应用中都需要进行串的模式匹配.针对这个问题,书上讲了两种模式匹配的算法,即BF算法和KMP算法,下 ...

  2. Java黑皮书课后题第8章:*8.15(几何:在一条直线上吗)编程练习题6.39给出了一个方法,用于测试三个点是否在一条直线上。编写下面的方法,检测points数组中所有的点是否都在同一条直线上

    *8.15(几何:在一条直线上吗)编程练习题6.39给出了一个方法,用于测试三个点是否在一条直线上.编写下面的方法,检测points数组中所有的点是否都在同一条直线上 题目 题目描述与运行示例 破题 ...

  3. 数据结构——基于字符串模式匹配算法的病毒感染检测

    实验四 基于字符串模式匹配算法的病毒感染检测 [实验目的] 1.掌握字符串的顺序存储表示方法. 2.掌握字符串模式匹配BF算法和KMP算法的实现. [实验内容] 问题描述 医学研究者最近发现了某些新病 ...

  4. 程序代码错误检测_错误检测代码

    程序代码错误检测 错误检测代码 (Error Detecting Codes) A group of bits is known as words, and these words move as a ...

  5. 基于VisualC++2010开发Windows7杀毒应用程序范例(2)---检测并遍历所有进程的线程信息...

    作为一个杀毒软件,必须扫描所有的进程的每一个线程,才能分析出病毒的行为! 下面我们演示下,基于Visual C++2010开发基于Windows7杀毒应用程序范例, 检测所有的进程线程信息 打开VS2 ...

  6. 用c语言编写程序相似性检测,程序代码相似性检测在论文抄袭判定中的应用

    摘要:现行的论文检测系统,只针对文字部分进行判定,无法判断论文中所包含的代码的独创性.理工科学生的毕业论文,通常包含的大量代码.因现行系统对代码默视为原创,而最终影响了对论文整体抄袭比例的判定,使准确 ...

  7. 国内android应用商城中程序隐私泄露分析,Android应用程序隐私数据泄露检测

    摘要: Android智能手机中存储着用户的隐私数据,这些隐私数据泄露,会使用户蒙受经济损失及人身伤害.然而,目前第三方应用软件市场中存在许多恶意软件或漏洞软件,但现有的对Android应用软件检测技 ...

  8. 鸿蒙系统测试失败,ANR-WatchDog-ohos: 一个简单的监测程序,可检测到鸿蒙系统的 ANR(Application Not Response-应用程序无响应)错误并引发有意义的异常...

    ANR-WatchDog-ohos 一个简单的监测程序,可检测到鸿蒙系统的 ANR(Application Not Response-应用程序无响应)错误并引发有意义的异常 项目名称:ANR-Watc ...

  9. python人脸检测与微信小程序_微信小程序实现人脸检测功能

    本文为大家分享了微信小程序实现人脸检测的具体代码,供大家参考,具体内容如下 因为本文章的人脸检测技术运用的是百度云人工智能,首先要有百度云的账号. 近期,人脸识别已经升级到了V3,开启了测试,所以也依 ...

最新文章

  1. 面试官:因为这个语言,我淘汰了90%的人!!
  2. oracle10.2 迁移,实战:Oracle10.2.0.4异机迁移并升级到Oracle 11.2.0.4
  3. WEB开发中的会话控制
  4. Oracle关联更新语法(T-SQL中的update...from)
  5. nginx 1.16 配置反向代理,http,https,ssl
  6. android中将自己的自定义组件打成JAR包
  7. PowerDesigner生成数据库设计文档
  8. 桥牌笔记:让敌方的Q、J、10、X只拿一墩的打法
  9. vtkDataObject 与vtkImageData
  10. python transform(img)_pytorch之ImageFolder使用详解
  11. Win 10 没有 Hyper-V 解决方案
  12. 全景视频拼接(三)--并查集法及源码分析
  13. 制作LINUX安装DEB,脚本中的函数报错怎么办?
  14. 麻瓜python视频教程_2019年最新麻瓜编程,Python商业爬虫学徒计划全套视频教程下载...
  15. CAS 服务端的搭建
  16. CMD窗口下强制删除文件
  17. 计算机扫描的配置文件在哪里找,打印机扫描文件到电脑哪里找
  18. 详细游戏建模,入门要领及学习方法。
  19. KeilMDK编译错误Error: L6218E: Undefined symbol __aeabi_assert (referred from xxx.o).
  20. Windows Mobile 6.x 下改Tahoma字体+微软雅黑说明

热门文章

  1. mysql limit 01怎么理解_MySQL limit实际用法的详细解析
  2. 网上报修系统java源码_网上报修系统管理软件
  3. HTML5基础教程(21)Audio(音频)
  4. Photoshop如何切图
  5. 学习和思考的一点小总结
  6. java 判断字符串是否包含字母_Java中判断某一字符串是否包含数字、字母和中文...
  7. 2021年中国航天发射列表(55发见证历史)
  8. NSGA-II算法阅读笔记
  9. c语言课设航班信息管理软件管理系统,c语言航班信息查询系统实验报告.doc
  10. Postgres忘记密码如何修改密码