最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

KMP算法的C#實現(xiàn)方法

 更新時間:2014年09月11日 11:10:38   投稿:shichen2014  
這篇文章主要介紹了KMP算法的C#實現(xiàn)方法,代碼簡潔實用,需要的朋友可以參考下

本文實例簡述了KMP算法的C#實現(xiàn)方法,分享給大家供大家參考。具體如下:

具體思路為:next函數(shù)求出模式串向右滑動位數(shù),再將模式串的str的next函數(shù)值 存入數(shù)組next。

具體實現(xiàn)代碼如下:

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("請按任意鍵繼續(xù)。。");
  Console.ReadKey(true);
}
}

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • 基于C#實現(xiàn)PDF文件合并工具

    基于C#實現(xiàn)PDF文件合并工具

    這篇文章主要為大家詳細(xì)介紹了如何基于C#實現(xiàn)一個簡單的PDF文件合并工具,文中的示例代碼簡潔易懂,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-01-01
  • Windows系統(tǒng)中使用C#編寫藍(lán)牙通信程序的簡單實例

    Windows系統(tǒng)中使用C#編寫藍(lán)牙通信程序的簡單實例

    這篇文章主要介紹了Windows系統(tǒng)中使用C#編寫藍(lán)牙通信程序的簡單實例,文中的例子使用到了32feet.NET中的InTheHand.Net.Personal類庫,需要的朋友可以參考下
    2016-04-04
  • c#執(zhí)行外部命令示例分享

    c#執(zhí)行外部命令示例分享

    c#執(zhí)行外部命令示例分享,大家參考使用吧
    2013-12-12
  • C#中comboBox實現(xiàn)三級聯(lián)動

    C#中comboBox實現(xiàn)三級聯(lián)動

    給大家分享了C#中comboBox實現(xiàn)三級聯(lián)動的全部代碼,代碼經(jīng)過測試,有興趣的朋友跟著做一下。
    2018-03-03
  • 判斷圖片-判斷位圖是否是黑白圖片的方法

    判斷圖片-判斷位圖是否是黑白圖片的方法

    近來工作需要判斷圖片否是是彩色的,由于是十萬張以上的大批量理處,所以通過序程來動自判斷。
    2013-05-05
  • unity 如何獲取Text組件里text內(nèi)容的長度

    unity 如何獲取Text組件里text內(nèi)容的長度

    這篇文章主要介紹了unity 獲取Text組件里text內(nèi)容的長度操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 改進(jìn)c# 代碼的五個技巧(一)

    改進(jìn)c# 代碼的五個技巧(一)

    這篇文章主要介紹了改進(jìn)c# 代碼的五個技巧(一),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • Unity實現(xiàn)物體運動軌跡的繪制

    Unity實現(xiàn)物體運動軌跡的繪制

    這篇文章主要為大家詳細(xì)介紹了Unity實現(xiàn)物體運動軌跡的繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • C#集合之集(set)的用法

    C#集合之集(set)的用法

    這篇文章介紹了C#集合之集(set)的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#中委托的基本概念介紹

    C#中委托的基本概念介紹

    這篇文章主要介紹了C#中委托的基本概念介紹,本文講解了委托的使用、委托類型和委托實例、委托的合并和刪除、委托是不易變的、委托調(diào)用列表、GetInvocationList等內(nèi)容,需要的朋友可以參考下
    2015-02-02

最新評論

乌兰浩特市| 大庆市| 南投县| 甘谷县| 临江市| 邛崃市| 游戏| 冕宁县| 邳州市| 新建县| 通州区| 高阳县| 林甸县| 濉溪县| 托克托县| 寻乌县| 定边县| 普定县| 银川市| 汶川县| 达孜县| 平乐县| 兖州市| 洛宁县| 绥芬河市| 宁河县| 仁寿县| 滕州市| 高邮市| 广河县| 衡东县| 泗洪县| 永德县| 舒兰市| 桃江县| 龙口市| 林西县| 即墨市| 西安市| 公主岭市| 衡东县|