假设字符串 S=”ababbaabaa”,模式串为P=”aab”,请进行快速模式匹配,并画出匹配过程的示意图。

来源:百度知道 编辑:UC知道 时间:2024/06/15 22:24:09
假设字符串 S=”ababbaabaa”,模式串为P=”aab”,请进行快速模式匹配,并画出匹配过程的示意图。

#include<stdio.h>
#include <string.h>
void Index(char S[],char T[],int pos,int next[])//利用模式串T的next函数求T在主串S中第pos个字符之后的位置的KMP算法。
{ //其中,T非空,1<=pos<=S[0]
int i=pos,j=1;
while(i<=S[0]&&j<=T[0])
{ if(j==0||S[i]==T[j])
{ ++i;
++j;
}
else j=next[j];
}
if(j>=T[0]) printf("模式串在主串中的位置是: %3d\n\n",i-T[0]);
else printf("主串中不存在和模式串相等的字串");
}
void main()
{char S[]=" ababbaabaa";//0号单元存放字符串中字符的个数
char T[]=" aab";//0号单元存放字符串中字符的个数
int i,j,pos=0;
int next[100];//next[i]表示当模式中第i个字符和主串中相应的字符‘失配’时,
//在模式串中需重新和主串中该字符进行比较的字符的位置
S[0]=strlen(S)-1;
T[0]=strlen(T)-1;
printf("S[0]=%d\n",S[0]);
printf("T[0]=%d\n",T[0]);
i=1;
next[1]=0;
j=0;
while(i<T[0])
{ if(j==0||T

假设字符串 S=”ababbaabaa”,模式串为P=”aab”,请进行快速模式匹配,并画出匹配过程的示意图。 假设S, T都是用单链表表示的字符串,请设计一个算法,找出S中第一个不在T中出现的字符。 pascal 字符串 S[0]是什么? 比较字符串s=’ABCDEF’和字符串t=’CDE’,当s 大于t时返回1,当s与t相等时返回0,s小于t时返回-1. String s = new String("abc");为什么创建了两个字符串对象? 求字符串长度*s="\"Name\\Address\n" 编写函数int find(char s[],char t[])在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置 vc++中如何把一个字符串分成2个 假设字符串中见有1个空格 例如"hello xf" 假设一行字符串中的单词之间用空格分隔,用函数实现一行字符串单词的统计。 如何假设传奇 S ``F?我想做下GM啊!