KMP算法的C#实现方法

Isabella ·
更新时间:2024-09-21
· 744 次阅读

本文实例简述了KMP算法的C#实现方法,分享给大家供大家参考。具体如下:

具体思路为:next函数求出模式串向右滑动位数,再将模式串的str的next函数值 存入数组next。

具体实现代码如下:

static void GetNextVal(string str, int [] next) { int i = 0; int j = -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算法代码如下:

static int KMP(string zstr, string mstr) { int i, j; int[] next = new int[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) return i - mstr.Length; return -1; } static void Main(string[] args) { string zstr, mstr; zstr = Console.ReadLine(); mstr = Console.ReadLine(); int pos1; pos1 = KMP(zstr, mstr); if (pos1 == -1) Console.WriteLine("没有匹配的字符串!"); else Console.WriteLine(pos1); Console.Write("请按任意键继续。。"); Console.ReadKey(true); } }

希望本文所述对大家的C#程序设计有所帮助。

您可能感兴趣的文章:C++ 数据结构之kmp算法中的求Next()函数的算法java 中模式匹配算法-KMP算法实例详解C语言中实现KMP算法的实例讲解KMP算法精解及其Python版的代码示例Python字符串匹配算法KMP实例JavaScript中数据结构与算法(五):经典KMP算法C语言kmp算法简单示例和实现原理探究字符串的模式匹配详解--BF算法与KMP算法快速模式匹配算法(KMP)的深入理解KMP 算法实例详解



方法 kmp算法 kmp C#

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章