国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

KMP算法的C#實現方法

2020-01-24 02:25:59
字體:
來源:轉載
供稿:網友

本文實例簡述了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#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜阳市| 松原市| 雷州市| 明星| 从江县| 汉中市| 乌兰浩特市| 丘北县| 延边| 张掖市| 临泽县| 普格县| 江达县| 虞城县| 扎兰屯市| 新民市| 山东| 西丰县| 江津市| 额敏县| 泉州市| 株洲市| 崇左市| 昌江| 卓尼县| 大荔县| 贡觉县| 沙雅县| 昭平县| 青岛市| 准格尔旗| 民丰县| 正阳县| 绩溪县| 牡丹江市| 玉田县| 化德县| 桦甸市| 竹溪县| 保康县| 海门市|