关注
#include <iostream>
#include <string>
using namespace std;
int b_force_match(string str, string ptr)
{
int i, j, temc;
int tlen = ptr.length();
int plen = str.length();
for (i = 0, j = 0; i <= plen - tlen; i++)
{
temc = i;
j = 0;
while (str[temc] == ptr[j] && j < tlen)
{
temc++;
j++;
}
if (j == tlen)
return i;
}
return -1;
}
void clnext(string str, int *next)
{
int len=str.length();
next[0] = -1;
int k = -1;
for (int q = 1; q < len; q++)
{
while (k > -1 && str[k + 1] != str[q])
k = next[k];//回溯
if (str[k + 1] == str[q])
k++;
next[q] = k;
}
}
int KMP(string str,string ptr)
{
int slen=str.length();
int plen=ptr.length();
int *next = new int[plen];
clnext(ptr, next);
int k = -1;
for (int i = 0; i < slen; i++)
{
while (k >-1&& ptr[k + 1] != str[i])
k = next[k];
if (ptr[k + 1] == str[i])
k = k + 1;
if (k == plen-1)
{
delete next;
return i-plen+1;
}
}
delete next;
return -1;
}
int main()
{
string str = "ahraaahahafafderqhgadgdfghadfhnmym,,aryzkiababaabaftyacfabaou";
string ptr = "ababaabaf";
cout << "patternmatch" << endl;
cout << "b_force:" << endl;
cout << b_force_match(str, ptr) << endl;
cout<<"KMP:"<<endl;
cout << KMP(str, ptr) << endl;
return 0;
}
查看原帖
点赞 评论
相关推荐
10-18 17:30
北京工业大学 Java
天降大厂offer:想从事前端就放前端的技术栈,然后项目描述,还有项目做了什么内容,使用了什么技术解决了什么问题优化了什么性能。然后头像可以不要,在读也可以不要,还有bg的话就不要放课程,写哪个学校什么本科,还有绩点排名(如果高的话),然后就是技术栈写好一点,接下来就是项目(有实习就写实习,没有就到项目),项目放两个好一点的,自己包装一下,然后有参加什么竞赛放两个就好了,接下来就是靠你自己了,毕竟211还是很难容易找的,不像我们学院本 点赞 评论 收藏
分享
代码飞升:很客观,两段实习中观察,感觉很多正式员工都很没生活,除了上班就是睡觉,时薪算下来也不是很高,有的糖人二级管居然觉得很正常,畸形成这样了都
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 互联网行业现在还值得去吗 #
36699次浏览 261人参与
# 落户对你的求职选择影响有多大 #
29292次浏览 101人参与
# 虾皮开奖 #
42536次浏览 202人参与
# 你小时候最想从事什么职业 #
132501次浏览 1972人参与
# 第一次找实习,我建议__ #
27916次浏览 349人参与
# 非技术2024笔面经 #
435349次浏览 4881人参与
# 参加完秋招的机械人,还参加春招吗? #
80484次浏览 614人参与
# 机械人的工作环境真的很差吗 #
35821次浏览 132人参与
# 牛友的志愿填报指南 #
41647次浏览 196人参与
# 韶音科技求职进展汇总 #
62313次浏览 506人参与
# 从mentor身上学到了__ #
23531次浏览 387人参与
# 你怎么评价今年的春招? #
144191次浏览 1392人参与
# 外出实习被同学举报 #
6238次浏览 39人参与
# 除了主业以外,你还有哪些其他收入? #
36513次浏览 303人参与
# 打工人的至爽时刻or至暗时刻 #
43042次浏览 223人参与
# 材料进Fab厂真的劝退吗? #
60891次浏览 209人参与
# 你认为工作的意义是什么 #
206416次浏览 1310人参与
# 华为海思工作体验 #
36245次浏览 146人参与
# 秋招暂停,我将对以下公司做出处罚__ #
32174次浏览 147人参与
# 如果今天是你的last day,你会怎么度过? #
49978次浏览 304人参与
