数据结构_串
学习串,整理完整代码
never give-up
代码从入门到放弃
展开
-
4.5
4.5 编写从串s中删除所有与串t相同的子串的算法。#include<iostream>#define MaxSize 11using namespace std;int Next[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1; int s=t.size(); while(i<s){ if(j==-1||t[i]==t[j]) Next[++i]=++j;原创 2021-03-13 11:33:23 · 237 阅读 · 0 评论 -
4.4
4.4 编写输入两个字符串s和t,统计串s包含串t个数的算法#include<iostream>#define MaxSize 6using namespace std;int Next[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1; int s=t.size(); while(i<s){ if(j==-1||t[i]==t[j]) Next[++i]=++j;原创 2021-03-06 22:11:17 · 510 阅读 · 0 评论 -
4.3
4.3 已知主串s=“cbaacbcacbcaacbcbc”,模式串t=“cbcaacbcbc”,求出t的next数组值和nextval数组值,并画出KMP算法。*#include<iostream>#define MaxSize 6using namespace std;int Next[MaxSize];int Nextval[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1; int s=原创 2021-03-06 21:40:07 · 207 阅读 · 1 评论 -
4.2
4.2 计算下列串的next数组#include<iostream>#define MaxSize 10using namespace std;int Next[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1;//i为当前匹配的位置,j为失配后跳转的位置(最长公共前后缀的长度) while(i<t.size()){ if(j==-1||t[i]==t[j]){原创 2021-02-28 00:03:40 · 146 阅读 · 0 评论 -
4.1
4.1 完成StrStr()函数,把主串中子串及以后的字符全部返回。例如主串“12345678”,子串“234”,返回“2345678”#include<iostream>#define MaxSize 10using namespace std;int Next[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1;//i为当前匹配的位置,j为失配后跳转的位置(最长公共前后缀的长度) while(i原创 2021-02-27 23:29:15 · 111 阅读 · 0 评论 -
KMP模板
//KMP模板#include<iostream>#define MaxSize 6using namespace std;int Next[MaxSize];void GetNext(string t){ Next[0]=-1; int i=0,j=-1; while(i<t.size()-1){ if(j==-1||t[i]==t[j]){ i++,j++; Next[i]=j;原创 2021-02-25 19:34:49 · 120 阅读 · 0 评论