KMP算法的C#实现方法
本文实例简述了KMP算法的C#实现方法,分享给大家供大家参考。具体如下:
具体思路为:next函数求出模式串向右滑动位数,再将模式串的str的next函数值存入数组next。
具体实现代码如下:
staticvoidGetNextVal(stringstr,int[]next)
{
inti=0;
intj=-1;
next[0]=-1;
while(i<str.Length-1)
{
if(j==-1||str[i]==str[j])
{
i++;
j++;
next[i]=j;
}
else
{
j=next[j];
}
}
}
KMP算法代码如下:
staticintKMP(stringzstr,stringmstr)
{
inti,j;
int[]next=newint[mstr.Length];
GetNextVal(mstr,next);
i=0;
j=0;
while(i<zstr.Length&&j<mstr.Length)
{
if(j==-1||zstr[i]==mstr[j])
{
++i;
++j;
}
else
{
j=next[j];
}
}
if(j==mstr.Length)
returni-mstr.Length;
return-1;
}
staticvoidMain(string[]args)
{
stringzstr,mstr;
zstr=Console.ReadLine();
mstr=Console.ReadLine();
intpos1;
pos1=KMP(zstr,mstr);
if(pos1==-1)Console.WriteLine("没有匹配的字符串!");
elseConsole.WriteLine(pos1);
Console.Write("请按任意键继续。。");
Console.ReadKey(true);
}
}
希望本文所述对大家的C#程序设计有所帮助。
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语