匹配模式BF算法

题目:疫情暴发,专家发现了一种新型环状病毒,这种病毒的DNA序列是环状的,而人类的DNA序列是线性的。专家把人类和病毒的DNA表示为字母组成的字符串序列,如果在某个患者的DNA中发现这种环状病毒,说明该患者已被感染病毒,否则没有感染。例如:病毒的DNA为“aabb”,患者的DNA为“eabbacab”,说明该患者已被感染。因为病毒是环状的,因此“abba”也是该病毒序列,它在患者的DNA中出现了。

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

你可能感兴趣的:(数据结构,数据结构,算法,c++)