KMP算法实现
来源:互联网 发布:ubuntu系统最合理分区 编辑:程序博客网 时间:2024/06/06 11:43
class Program
{
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];
}
}
}
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); }}
0 0
- KMP算法及改进KMP算法实现
- [数据结构]KMP算法实现
- KMP算法的实现
- KMP算法实现
- KMP算法实现
- KMP 算法实现
- kmp算法实现
- KMP算法实现
- KMP算法和实现
- KMP算法实现
- KMP算法及实现
- KMP算法的实现
- KMP算法实现
- java实现kmp算法
- KMP算法C++实现
- KMP算法c++实现
- KMP算法java实现
- kmp算法实现
- apache 浏览器缓存
- 转载关于char的c语言指针问题:char **s char *a [ ] char a [ ]
- 高并发下的 Nginx 优化方案
- MySql初学命令
- 杭电2719 The Seven Percent Solution
- KMP算法实现
- OC内存管理详解
- springMVC实例(二)
- iOS_动画方法以及过渡效果
- Host、EndPoints及配置服务(一)
- vmware虚拟机不能上网问题的解决
- I/O read()/write()/pread()/pwrite()/fread()/fwrite
- A20 实现 红外 开关机
- 设备树(三)linux内核主线次顶层common-335x-evm.dts