举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"? 在上面这个例子中,字符串"BBC ABCDAB ABCDABCDABDE"称为主串,字符串"ABCDABD"称为模式串 许多算法可以完成这个任务,Knuth-Morris ...
分类:
编程语言 时间:
2016-05-27 23:42:34
阅读次数:
229
前言 之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导论,32章 字符串匹配虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解,没有与程序结合起... ...
分类:
编程语言 时间:
2016-05-27 23:31:57
阅读次数:
192
各种文本编辑器的”查找”功能(Ctrl+F),大多采用 Boyer-Moore算法 。Boyer-Moore算法不仅效率高,而且构思巧妙,容易理解。
1977年,德克萨斯大学的Robert S. Boyer教授和J StrotherMoore教授发明了这种算法。...
分类:
编程语言 时间:
2016-05-27 12:17:58
阅读次数:
265
1、前言: leetcode上的28. Implement strStr()就是一个字符串匹配问题。字符串匹配是计算机的基本任务之一。所以接下来的两篇日志,都对相关的算法进行总结。 2、暴力求解算法 如果用暴力匹配的思路,并假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有: 如果当前 ...
分类:
编程语言 时间:
2016-05-23 19:00:29
阅读次数:
213
前言
之前对kmp算法虽然了解它的原理,即求出P0···Pi的最大相同前后缀长度k;但是问题在于如何求出这个最大前后缀长度呢?我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看算法导论,32章 字符串匹配虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解,没有与程序结合起来讲。今天我在这里讲一讲我的一些理解,希望大家多多指教,如果有不清楚的或错误的请给我留言。...
分类:
编程语言 时间:
2016-05-22 00:46:41
阅读次数:
218
这道题是一道类似正则表达式匹配的题目,但是我发现这个题的难度比之前那个题的难度高几个档次。如题目所示:'?'可以匹配任意一个字符,而 ' * ' 则可以匹配任意一个字符串,给你两个字符串,主串和模式串,判断他们是否可以匹配。
这道题的难度在于‘*’的处理,到底‘*’要和多少个字符串匹配呢?这个问题不好解决,我一开始的思路是:
1.遇到s[i] = p[i] || p[i] =='?'...
分类:
其他好文 时间:
2016-05-18 18:41:07
阅读次数:
118
正则表达式(regularexpression)描述了一种字符串匹配的语法规则。(1)普通字符最简单的正则表达式是一个单独的普通字符,它在匹配一个字符的时候,匹配与其相同的一个字符。普通字符由所有哪些未显示指定为元字符的打印和非打印字符组成。字母、数字、汉字、下划线,以及没..
分类:
编程语言 时间:
2016-05-16 20:11:17
阅读次数:
266
sunday算法简单易懂,比KMP和BM都更容易理解。以后再补充KMP的算法。
竟然有人看我的文章。。。本来以为没人看的,所以就偷懒,原来的文字说明只有上面那一句,这下弄得我好羞愧。。。
来补充多点解释吧。
sunday算法是一个外国人在1990年发明的。。具体是谁忘记了,但他的名字里有sunday这个词,所以我猜这就是为什么叫sunday算法。
首先因为sunday算法每次的位置移动比...
分类:
编程语言 时间:
2016-05-12 22:36:24
阅读次数:
231
SCU - 4495
给定一个字符串,把其中出现的 A串替换为 B串
KMP入门题,对原串匹配A串,跑一遍KMP
然后匹配到终点的时候替换就好了
最后再输出替换的结果
时间复杂度 O(N)#pragma comment(linker, "/STACK:102400000,102400000")
#include
#include
#include <...
分类:
其他好文 时间:
2016-05-12 16:00:38
阅读次数:
129
这种两种分词方法都是机械分词方法,它是按照一定的策略将待分析的汉字串与机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功。按照扫描方向的不同,串匹配分词方法可以分为正向匹配和逆向匹配。按照不同长度优先匹配的情况,可以分为最大匹配和最小匹配。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少用。一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用...
分类:
编程语言 时间:
2016-05-12 15:21:01
阅读次数:
864