• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > KMP算法的C#实现方法

KMP算法的C#实现方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了kmp算法代码实现,kmp算法实现,java实现kmp算法,kmp算法,kmp算法详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例简述了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];
 }
  }
}

</div>

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);
}
}

</div>

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • KMP算法的C#实现方法

相关文章

  • 2017-05-28C#实现矩阵转置的方法
  • 2017-05-28c#实现把异常写入日志示例(异常日志)
  • 2017-05-28C#实现安全删除文件目录的方法
  • 2017-05-28c#实现pdf的另存为功能
  • 2017-05-28深入解析C#设计模式中对桥接模式的具体运用
  • 2017-05-28C#实现的自定义邮件发送类完整实例(支持多人多附件)
  • 2017-05-28C#下实现创建和删除目录的实例代码
  • 2017-05-28C# MVC模式下商品抽奖功能实现
  • 2017-05-28c#通过xpath读取xml示例
  • 2017-05-28C#中使用委托的3种方式代码示例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 重温C# clr 笔记总结
    • 读取图片像素的具体实例
    • 提示出现unresolved external symbol _main的解决方法
    • C#中事件的定义和使用
    • C# 设计模式系列教程-工厂方法模式
    • C#判断日期是否到期的方法
    • C#开发中的垃圾回收机制简析
    • C#微信公众号开发 微信事件交互
    • C#调用windows api关机(关机api)示例代码分享
    • C#实现为一张大尺寸图片创建缩略图的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有