博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
KMP算法练习
阅读量:4635 次
发布时间:2019-06-09

本文共 1054 字,大约阅读时间需要 3 分钟。

#include 
getNext(char str[],int n, int next[]){ int i, j; i = 1; j = 0; next[0] = -1; next[1] = 0; while(i < n){ if(str[i] == str[j]){ i++; j++; next[i] = j; } else if(j == 0){ i++; next[i] = 0; } else j = next[j]; }}KMP(char content[], int n, char str[], int m, int next[]){ int i, j; i = 0; j = 0; while(i < n && j < m){ if(content[i] == str[j]){ i++; j++; } else if(j == 0){ i++; } else{ j = next[j]; } } if(j == m) printf("%d", 1); else printf("%d", 0);}main(){ int i; int next[10]; char str[] = {
'a', 'b', 'c', 'a', 'b', 'c', 'a', 'a', 'a'}; char content[] = {
'r', 'a', 'b', 'c', 'a', 'A', 'c', 'a', 'a', 'a', 'c'}; getNext(str, 9, next); for(i = 0; i < 9; i++) printf("%d ",next[i]); printf("\n"); KMP(content, 11, str, 9, next);}

 

转载于:https://www.cnblogs.com/yutoulck/p/3569571.html

你可能感兴趣的文章
OpenCV YUV 与 RGB的互转(草稿)
查看>>
「Django」rest_framework学习系列-用户认证
查看>>
二次注入原理及防御
查看>>
要过一遍的博客列表
查看>>
栈和队列的操作
查看>>
会话记住已登录功能
查看>>
detection in video and image
查看>>
Linux内核分析——可执行程序的装载
查看>>
儿子和女儿——解释器和编译器的区别与联系
查看>>
第一阶段冲刺3
查看>>
2014百度面试题目---“求比指定整数大且最小的不重复数”解答
查看>>
父类引用指向子类对象
查看>>
linux epoll用法
查看>>
viewport使用 html5
查看>>
网页如何实现下载功能
查看>>
IT男专用表白程序
查看>>
【BZOJ】2120: 数颜色
查看>>
spring boot 文件上传工具类(bug 已修改)
查看>>
《机电传动控制》学习笔记03-1
查看>>
读《大道至简》第六章感想
查看>>