#includeusing namespace std;void getNext(char *p,int *next){ int j,k; next[0]=-1; j=0; k=-1; while(j<strlen(p)-1) { if(k==-1|...
分类:
编程语言 时间:
2015-06-07 21:28:52
阅读次数:
163
(1)传统的字符串匹配算法:注意这道题中各种特殊情况的返回值。传统字符串匹配就是让目标字符串从第一个字母开始逐个匹配源字符串的每一个字符,直到匹配完全。class Solution {public: int strStr(string haystack, string needle) { ...
分类:
其他好文 时间:
2015-06-01 18:26:18
阅读次数:
112
1.一次一密加密、解密算法2.位加密、解密算法3.替换加密、解密算法4.换位加密、解密算法5.寻找假银币6.八皇后问题7.窃贼问题8.汉诺塔算法9.括号匹配算法求解(用栈实现)10.最短路径(图中两点间最短路径)11.城市之间的最短总距离(最小生成树算法)12.简单的约瑟夫环算法13.动态数组排序实...
分类:
编程语言 时间:
2015-05-29 00:24:07
阅读次数:
201
■Boyer-Moore(BM)算法 开发于1977年的Boyer-Moore算法是一种基于后缀匹配的模式串匹配算法,后缀匹配就是模式串从右到左开始比较,但模式串的移动还是从左到右的。为了实现更快的移动模式串,BM定义了两个规则...
分类:
编程语言 时间:
2015-05-27 21:19:04
阅读次数:
155
字符串模式匹配算法(string searching/matchingalgorithms)
顾名思义,就是在一个文本或者较长的一段字符串中,找出一个或多个指定字符串(Pattern),并返回其位置。这类算法属基础算法,各种编程语言都将其包括在自带的String类函数中,而且由之衍生出来的正则表达式也是必须掌握的一种概念和编程技术。
Br...
分类:
编程语言 时间:
2015-05-27 10:07:12
阅读次数:
289
■Knuth-Morris-Pratt(KMP)算法-听我的,别总重来。 发表于1977年的KMP算法是一种高效的匹配算法,消除了BF算法中回溯问题,即每次移动的距离可以不是1而是更大的数,也不需要回溯,BF算法的时间复杂度是O(m*n...
分类:
编程语言 时间:
2015-05-27 07:28:56
阅读次数:
226
■朴素的模式匹配算法(Brute-Force,BF算法,蛮力算法)-换下一个,从头再来。 模式匹配的最原始想法,从目标串T的的第一个字符开始与模式串P的第一个字符开始进行比较,如果相等,则继续对后续的字符进行比较,...
分类:
编程语言 时间:
2015-05-26 06:54:32
阅读次数:
185
算法描述:S1为带切分字符串,S2为空,MaxLen为词典中的最大词长判断S1是否为空,若是则输出S2从S1左边开始,取出待处理字符串str(其中str的长度小于MaxLen)查看str是否在词典中,若是则转5,若否则转6S2+=str+”/”,S1-=str,转2将str最右边的一个字去掉判断st...
分类:
编程语言 时间:
2015-05-25 22:19:22
阅读次数:
137
算法描述:S1为带切分字符串,FMM为S1正向最大匹配切分结果,BMM为S1逆向最大匹配切分结果如果FMM和BMM长度不相等则输出长度较短的那个否则转3如果FMM和BMM的结果相同则输出任意一个否则输出单个字字数最少的结果Java实现代码: 1 public static List SegDoubl...
分类:
编程语言 时间:
2015-05-25 21:58:18
阅读次数:
144
算法描述:S1为带切分字符串,S2为空,MaxLen为词典中的最大词长判断S1是否为空,若是则输出S2从S1右边开始,取出待处理字符串str(其中str的长度小于MaxLen)查看str是否在词典中,若是则转5,若否则转6S2+=str+”/”,S1-=str,转2将str最左边的一个字去掉判断st...
分类:
编程语言 时间:
2015-05-25 21:55:18
阅读次数:
137