国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)結構:串:第1關:基于BF算法的病毒感染監(jiān)測

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)結構:串:第1關:基于BF算法的病毒感染監(jiān)測。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

任務描述

醫(yī)學研究者最近發(fā)現(xiàn)了某些新病毒,通過對這些病毒的分析,得知它們的DNA序列都是環(huán)狀的?,F(xiàn)在研究者收集了大量的病毒DNA和人的DNA數(shù)據(jù),想快速檢測出這些人是否感染了相應的病毒。為方便研究,研究者將人的DNA和病毒的DNA均表示成由一些小寫字母組成的字符串,然后檢測某種病毒的DNA序列是否在患者的DNA序列中出現(xiàn)過,如果出現(xiàn)過,則此人感染了病毒,否則沒有感染。注意:人的DNA序列是線性的,而病毒的DNA序列是環(huán)狀的。請使用BF算法檢測人是否感染相應病毒。

編程要求

輸入

多組數(shù)據(jù),每組數(shù)據(jù)有一行,為序列A和B,A對應病毒的DNA序列,B對應人的DNA序列。A和B都為“0”時輸入結束。

輸出

對于每組數(shù)據(jù)輸出一行,若患者感染了病毒輸出“YES”,否則輸出“NO”。

測試說明

平臺會對你編寫的代碼進行測試:

測試輸入: abbab abbabaab baa cacdvcabacsd abc def
0 0

預期輸出: YES YES NO

很奇怪,即便是初始狀態(tài)運行也能打印出一排的YES。大概是因為能打印出YES,意味著result變量中值不為0。而C語言中即便定義沒有初始化,里面仍然有值,所以是一排的YES文章來源地址http://www.zghlxwxcb.cn/news/detail-743951.html

#include<iostream>
#include<cstring>
#define MAXSIZE 1000
using namespace std;
int BF(char a[],char b[])
{//簡單模式匹配算法,匹配成功返回1,否則返回0
/**************begin************/
 int i=0,flag=0,tem;
for(;a[i]!='\0';i++)//每次失敗,主串右移一位
 {
     int tem=i,j=0;//每次比較不匹配后i才能++,但每比完一個字符若正確要比較下一個
     for(;b[j]!='\0';j++,tem++)//和主串比較
     {
         if(a[tem]!=b[j]) 
         {
             break;
         }
     }
     if(b[j]=='\0') 
     {
        flag=1;//在如果不匹配,主串就右移,子串就從頭比較的情況下,只有子串全部匹配,子串才能遍歷到最后的'\0'
        break;
     }
 }
 return flag;



    /**************end************/
}
void Revolve(char a[])
{//字符串旋轉,把病毒第一個字符變?yōu)樽詈笠粋€字符
/**************begin************/
 char tem=a[0];
 int i=1;
 for(;a[i]!='\0';i++)
 {
     a[i-1]=a[i];
 }
 a[i-1]=tem;



    /**************end************/
}
int Judge(char b[],char a[])//和BF的形參有些許不同
{//判別病毒DNA環(huán)狀序列是否在患者DNA序列中出現(xiàn)過,出現(xiàn)過返回1,否則返回0
/**************begin************/
int revolTimes=0,flagJudge=0;//flag被BF占了
while(b[revolTimes]!='\0')revolTimes++;//求環(huán)形病毒可revolve次數(shù)
for(int i=0;i<revolTimes;)//循環(huán)控制revolve次數(shù),子串匹配調用BF()方法
{
    int flag=BF(a,b);
    if(flag==0)//如果不匹配,revolve后再比較
    {
        Revolve(b);
        i++;
    }
    else 
    {
        flagJudge=1;
        break;
    }
}
return flagJudge;
 

  
    /**************end************/
}
int main()
{
	char a[MAXSIZE],b[MAXSIZE];//a存入病毒的DNA序列,b存入人的DNA序列
	while(cin>>a>>b)
	{
	    if(strcmp(a,"0")==0&&strcmp(b,"0")==0)
            break;
        int result=Judge(a,b);//即便Judge沒有返回1或0,result仍有未知的殘留值,所以初始代碼也能打印出YES
        if(result)
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;
 	}
	return 0;
}

到了這里,關于數(shù)據(jù)結構:串:第1關:基于BF算法的病毒感染監(jiān)測的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 《數(shù)據(jù)結構》實驗報告四:串的模式匹配(BF算法、KMP算法)

    《數(shù)據(jù)結構》實驗報告四:串的模式匹配(BF算法、KMP算法)

    1、了解 串 的基本概念。 2、掌握 串的模式匹配算法 的實現(xiàn) 。 說明以下概念 1、模式匹配: ? ? ? ?? 串的模式匹配就是 子串的定位運算 。 ? ? ? ?? 設有兩個字符串 S 和 T ,S為 主串(正文串) ,T為 子串(模式串) 。在主串S中查找與模式串T相匹配的子串,若匹配成功,確定

    2024年02月01日
    瀏覽(28)
  • 【數(shù)據(jù)結構】字符串匹配|BF算法|KMP算法|next數(shù)組的優(yōu)化

    【數(shù)據(jù)結構】字符串匹配|BF算法|KMP算法|next數(shù)組的優(yōu)化

    字符串匹配算法是在實際工程中經(jīng)常遇到的問題,也是各大公司筆試面試的??碱}目,本文主要介紹BF算法(最好想到的算法,也最好實現(xiàn))和KMP算法(最經(jīng)典的) BF算法,即暴力(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是將目標S的第一個字符與模式串T的第一

    2024年02月04日
    瀏覽(24)
  • 算法復現(xiàn) - 病毒感染檢測(案例4.1算法4.5)

    第1關:案例4_1 病毒感染檢測

    2024年02月06日
    瀏覽(22)
  • 勒索病毒最新變種.halo勒索病毒來襲,如何恢復受感染的數(shù)據(jù)?

    勒索病毒最新變種.halo勒索病毒來襲,如何恢復受感染的數(shù)據(jù)?

    摘要: .halo勒索病毒已成為數(shù)字世界中的威脅,通過高級加密技術將文件鎖定,并要求支付贖金。本文91數(shù)據(jù)恢復將深入介紹.halo勒索病毒的工作原理,提供解鎖被感染文件的方法,以及探討如何有效預防這一威脅。如果您正在經(jīng)歷勒索病毒數(shù)據(jù)恢復的困境,我們愿意與您分享

    2024年02月09日
    瀏覽(17)
  • 勒索病毒最新變種.faust勒索病毒來襲,如何恢復受感染的數(shù)據(jù)?

    勒索病毒最新變種.faust勒索病毒來襲,如何恢復受感染的數(shù)據(jù)?

    引言: 隨著我們進入數(shù)字化時代,數(shù)據(jù)的重要性變得愈發(fā)顯著,而網(wǎng)絡安全威脅也日益增加。.faust勒索病毒是其中一種備受惡意分子鐘愛的危險工具,它通過加密用戶文件并勒索高額贖金來對個人和組織發(fā)起攻擊。本文將深入探討.faust勒索病毒的威脅,包括其工作原理、如何

    2024年02月21日
    瀏覽(23)
  • Mallox勒索病毒最新變種.malox勒索病毒來襲,如何恢復受感染的數(shù)據(jù)?

    Mallox勒索病毒是一種針對計算機系統(tǒng)的惡意軟件,能夠加密受感染計算機上的文件。最近,新的Mallox病毒變種.malox勒索病毒被發(fā)現(xiàn)并引起了關注,.malox勒索病毒這個后綴已經(jīng)是Mallox勒索病毒家族的第十幾個升級變種了,這個后綴的加密占比更高,導致數(shù)據(jù)的修復難度再次升級

    2024年02月06日
    瀏覽(18)
  • 服務器感染了.360勒索病毒,如何確保數(shù)據(jù)文件完整恢復?

    服務器感染了.360勒索病毒,如何確保數(shù)據(jù)文件完整恢復?

    引言: 隨著科技的不斷進步,互聯(lián)網(wǎng)的普及以及數(shù)字化生活的發(fā)展,網(wǎng)絡安全問題也逐漸成為一個全球性的難題。其中,勒索病毒作為一種危害性極高的惡意軟件,在近年來頻頻襲擾用戶。本文91數(shù)據(jù)恢復將重點介紹 360 勒索病毒,包括如何解密被其加密的數(shù)據(jù)文件,以及如

    2024年02月12日
    瀏覽(27)
  • 服務器感染了.locked勒索病毒,如何確保數(shù)據(jù)文件完整恢復?

    服務器感染了.locked勒索病毒,如何確保數(shù)據(jù)文件完整恢復?

    引言: 網(wǎng)絡安全威脅的不斷演變使得惡意軟件如.locked勒索病毒成為當今數(shù)字時代的一大挑戰(zhàn)。.locked勒索病毒能夠加密您的文件,然后要求支付贖金以解鎖它們。本文將深入探討.locked勒索病毒的特點,以及如何應對感染,以及預防這種類型的威脅的方法。數(shù)據(jù)的重要性不容小

    2024年02月06日
    瀏覽(26)
  • 服務器感染了.Elbie勒索病毒,如何確保數(shù)據(jù)文件完整恢復?

    引言: 在數(shù)字時代,數(shù)據(jù)是我們生活和工作的重要組成部分。然而,惡意軟件的威脅日益增加,其中 Elbie 勒索病毒以其毒辣的加密手段和無情的勒索要求,讓人防不勝防。本文91數(shù)據(jù)恢復將為你剖析 Elbie 勒索病毒的獨特之處,并探討解密被其束縛的數(shù)據(jù)文件的方法,更重要

    2024年02月11日
    瀏覽(27)
  • 服務器感染了.mallox勒索病毒,如何確保數(shù)據(jù)文件完整恢復?

    尊敬的讀者: 隨著科技的進步,網(wǎng)絡犯罪也在不斷演進,.mallox勒索病毒作為其中的一種威脅已經(jīng)引起了廣泛關注。本文將深入介紹.mallox勒索病毒的特征、傳播途徑,詳細解釋如何有效恢復被加密的數(shù)據(jù)文件,并提供一系列預防措施,以保護系統(tǒng)免受.mallox及類似威脅的侵害。

    2024年02月20日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包