字符串匹配之kmp
来源:互联网 发布:淘宝开店培训机构 编辑:程序博客网 时间:2024/06/12 01:03
/*file:KMP_alogrithm.cbrief:auther:yejingdata:2014.07.26ver:1(create the file 7/26)test pc:ubuntu 12.14*/#include <stdio.h>#include <stdlib.h>#include <string.h> void generate_bt_array(int bt_array[], char tar_string[], int n){ int i = 1; bt_array[0] = 0; while(i < n) { if(tar_string[i] == tar_string[bt_array[i-1]]) bt_array[i] = bt_array[i-1] + 1; else bt_array[i] = 0;++i; }return;} int kmp_alogrithm(char* src_string, char* tar_string){if(!src_string || !tar_string)return -1; int i = 0, j = 0; int tar_len = strlen(tar_string); int src_len = strlen(src_string); int* bt_array = (int*)malloc(sizeof(int) * tar_len); if(!bt_array)return -1; generate_bt_array(bt_array, tar_string, tar_len); while( i < src_len && j < tar_len) { if(src_string[i] == tar_string[j]) { ++i; ++j; } else { if(!j) ++i; elsej = bt_array[j - 1]; } } free(bt_array); if(j==tar_len) return i-tar_len; else return -1;}int main(int argc, char* argv[]){ char *src_string = "ABCDABCDABCDABCDABCDABCDABCDABFABCDABE"; char *tar_string = "ABCDABE"; int index = kmp_alogrithm(src_string, tar_string); printf("kmp_index:%d \n", index); pause(); return 0;}
0 0
- 字符串匹配之KMP
- 字符串匹配 之 KMP
- 字符串匹配之kmp
- 字符串匹配之KMP算法
- 字符串匹配算法之KMP
- 字符串匹配之KMP算法
- 字符串匹配之KMP算法
- 字符串匹配之KMP算法
- 字符串匹配 之 KMP详解
- 字符串匹配之KMP算法
- 字符串匹配之KMP算法
- 字符串匹配 之 KMP算法
- 字符串匹配之KMP算法
- 字符串匹配之KMP算法
- 字符串匹配之KMP算法
- 字符串匹配之kmp算法
- 字符串匹配之KMP算法
- 字符串匹配之KMP 算法
- 在oracle数据库里创建自增ID
- 直接用socket实现HTTP协议(下载专用)
- form表单input标签
- 今天,就来说说杭电n^m!
- Cocos2d-x 3.0---触摸机制
- 字符串匹配之kmp
- iOS多线程编程之NSThread的使用
- NanguoCoffee 知道为啥HashMap里面的数组size必须是2的次幂?
- Java中RandomAccessFile的用法
- 基于Canvas的Char.js库使用
- HTML5的图像系统Canvas与SVG
- 九度题目1011:最大连续子序列
- Linux下配置Xdebug调试(xdebug-2.2.5)
- java实现Excel导出