源代码: #include<cstdio> #include<cstring> #include<iostream> using namespace std; string s1,s2; int m,n,k(0),next[1001]; //在Next数组中,存储的是匹配失败后,上一位应该跳跃到的节
分类:
编程语言 时间:
2016-02-15 22:29:41
阅读次数:
199
正则表达式到底是什么东西? 字符是计算机软件处理文字时最基本的单位,可能是字母,数字, 标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符的序列。文本也就是文字,字符串。说某个字符串匹配某个正则表达 式,通常是指这个字符串里有一部分(或几部分分别)能满足表达式给出的条件。 在编写处理字符串的
分类:
其他好文 时间:
2016-02-13 19:34:13
阅读次数:
251
BM算法研究了很久了,说实话BM算法的资料还是比较少的,之前找了个资料看了,还是觉得有点生涩难懂,找了篇更好的和算法更好的,总算是把BM算法搞懂了。 1977年,Robert S.Boyer和J Strother Moore提出了另一种在O(n)时间复杂度内,完成字符串匹配的算法,这个算法在单模匹配
分类:
编程语言 时间:
2016-02-09 01:15:53
阅读次数:
354
新年前的最后一贴,待编辑 /*前几天我不是发了一个KMP算法吗,在结尾我说,有比KMP更好的算法,BM和Sunday算法 BM算法究竟是个什么东西呢?其实BM算法的资料在网上是不算多的*/
分类:
编程语言 时间:
2016-02-07 21:21:26
阅读次数:
384
对于文本处理来说,正则表达式无疑是一个非常强大的工具。但是编写和阅读正则表达式往往就不是那么一件非常愉快的事情了。本文在这里介绍另一种另类的正则表达式——VerbalExpressions,它采用函数链的方式实现了一转口语化的表达式,也能非常方便的类似正则表达式的字符串匹配功能。 1 [TestMe
分类:
其他好文 时间:
2016-02-06 14:15:38
阅读次数:
185
文本串S如下模式串T如下期望从S中找到T的位置。设有指向文本串S的游标i,指向模式串T的游标j。初始i=0,j=01:i=0,j=0S[i]!=T[j],所以需要向右移动i然后重新和T的开头匹配,那么我们移动多少个字符呢?现在让我们脑洞大开,从S和T在当前位置末尾对齐的下一个位置看起,也就是目..
分类:
编程语言 时间:
2016-02-03 22:39:09
阅读次数:
191
字符串匹配: 有限自动机 KMP 后缀数组 前缀数组 动态规划 NPC 商旅问题近似算法 最小生产树 LK算法
分类:
编程语言 时间:
2016-02-03 11:41:03
阅读次数:
131
源代码: #include<iostream>#include<cstdio>#include<string>using namespace std;string s1,s2;int m,n,k(0);bool t(0);int main(){ getline(cin,s1); getline(ci
分类:
编程语言 时间:
2016-02-02 21:34:46
阅读次数:
427
举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?这完全可以是一道程序员的笔试题。 许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。它以三个发明者命名,起头的那个K就是著.....
分类:
编程语言 时间:
2016-01-19 12:01:24
阅读次数:
161
IK Analyzer是一款结合了词典和文法分析算法的中文分词组件,基于字符串匹配,支持用户词典扩展定义,支持细粒度和智能切分,比如:张三说的确实在理智能分词的结果是:张三 | 说的 | 确实 | 在理 最细粒度分词结果:张三 | 三 | 说的 | 的确 | 的 | 确实 | 实在...
分类:
其他好文 时间:
2016-01-11 20:31:31
阅读次数:
228