导图
一、顺序串
1、定义
typedef struct{
char ch[M+1];//约定0不用
int length;//串长
}SString;
- 判断两个串是否相等
boo Equal(String S,String T){
if(S.length!=T.String) return false;
for(int i=1;i<=S.length;i++){
if(S.ch[i]!=T.ch[i]){
return false;
}
}
return true;
}
- 串的模式匹配
在一个 “主串”(很长的字符串)里,查找是否存在一个 “模式串”(我们要找的子串),如果存在,返回它在主串中首次出现的位置
- BF(Brute Force 暴力)算法(简单模式匹配)
int index_BF(SString S,SString T,int pos){//pos为在主串开始匹配目标串的位置
int i=pos,j=1;
while(i<=S.length&&j<=T.length){
if(S.ch[i]==T.ch[j]){
i++;
j++;
}else{
i=i-j+2;
j=1;
}
}
if(j>T.length){
return i-T.length;
}else{
return 0;
}
}