题目:疫情暴发,专家发现了一种新型环状病毒,这种病毒的DNA序列是环状的,而人类的DNA序列是线性的。专家把人类和病毒的DNA表示为字母组成的字符串序列,如果在某个患者的DNA中发现这种环状病毒,说明该患者已被感染病毒,否则没有感染。例如:病毒的DNA为“aabb”,患者的DNA为“eabbacab”,说明该患者已被感染。因为病毒是环状的,因此“abba”也是该病毒序列,它在患者的DNA中出现了。文章来源地址https://www.toymoban.com/news/detail-676529.html
int Index_BF(string S,string T, int pos)
{
int i =pos, j =0;
while(i<=S.length() && T<=T.length()){
if(S[i]==T[i]){ //匹配一致继续匹配
++i;
++j;
}else{ //否则重新往后匹配
i=i-j+1;
j=0;
}
}
if(j==T.string()){
return i-T.string(); //匹配成功返回T的位置
}else{
return -1;
}
}
bool VirusDetection(string S, string T)
{
for(int i=T.length(), j=0; j<T.length(); ++i, ++j){
T[i]=T[j]; //将T扩大一倍
}
string temp;
for(int i=0;i<T.length();++i){
for(int j=0;j<T.length();++j){
temp[j]=T[i+j]; //得到病毒变种
}
if(Index_BF(S, temp, 0)){ //检测病毒
return true;
}
}
return false;
}
文章来源:https://www.toymoban.com/news/detail-676529.html
到了这里,关于匹配模式BF算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!