int find_sub_string(string s, string t)
{
int i = 0, j = 0; //初始化两个指针
while(i<s.size() && j<t.size()){
if(s[i] == t[j]){
i++; //如果两个指针指向的字符相等
j++; //则将两个指针向后移动
}
else{
i = i - j + 1; //匹配失败,i退回到上次匹配首位的下一位
j = 0; //j退回到子串首位
}
}
if(j>=t.size()){ //j走到子串末尾说明匹配成功
return i - j; //匹配成功返回主串中子串出现的第一位
}
else
return -1; //匹配失败,返回-1
}
kmp实现
最新推荐文章于 2024-10-17 11:39:06 发布