bool KMP(string str,string sub_str,int *next){
int i=0,j=0;
while(i<str.length()){
if(str[i]==sub_str[j]&&j<sub_str.length()){
i++;
j++;
}else if(j==sub_str.length()){
return 1;
}else if(str[i]!=sub_str[j]&&j<sub_str.length()){
if(j==0) i++;
else j=next[j];
}else i++;
}
if(i==str.length()&&j==sub_str.length()) return 1;//最后一个匹配成功
return 0;
}