字符串匹配
精确:
indexOf(String str); -- strstr(), O(mn)。
lastIndexOf(String str); -- continue 的别样用法。
matches(String regex); -- Regex.compile()/match()。
模糊:
java package?
Spell Checker -- 两个字符串的相似程度...
分类:
编程语言 时间:
2014-06-20 11:00:18
阅读次数:
287
此算法比BM算法的效率还要高。Sunday算法没有规定必须从模式头部开始比较还是从模式尾部开始比较。所以两种方法都是可以的。
下面是个例子,假设从头开始比较。
文本:A B C A B D B C D
模式:B C D
A≠B,那么查看文本中越出比较范围后的第一个字符(这里为A)是否在模式中,如果在,则两者对齐,否则跳过A。这里直接跳过A。
文本:A B C A B D ...
分类:
其他好文 时间:
2014-06-07 15:45:04
阅读次数:
210
字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB
ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?
许多算法可以完成这个任务,Knuth-Morris-Pratt算法(简称KMP)是最常用的之一。 这种算法不太容易理解,网上有很多解....
分类:
其他好文 时间:
2014-06-07 04:32:01
阅读次数:
263
先去开撸了 把代码 贴上 ^ ^一段 暴力 TLE --一段 AC ---暴力 : TLE 1
#include 2 #include 3 #include 4 using namespace std; 5 6 const int size =
50010; 7 char str[size]...
分类:
其他好文 时间:
2014-06-06 16:22:49
阅读次数:
283
蛮力法进行字符串匹配的缺点在于每次失配后模式只向后移动一个位置。想要提高算法效率,就必须在不错过文本中一个匹配子串风险的前提下,尽量增大模式向后移动的幅度。Horspool就是这样一种算法之一,它的思想要比KMP算法容易。它采用了输入增加技术:对模式进行预处理得到一些信息,把这些信息存储在表中,当文本和模式进行匹配时就会用到这些信息。Horspool的匹配过程是从右向左进行的,在匹配过程中会出现以...
分类:
其他好文 时间:
2014-06-05 06:08:06
阅读次数:
362
All in AllTime Limit: 1000MSMemory Limit:
30000KTotal Submissions: 27295Accepted: 11162DescriptionYou have devised a new
encryption technique which en...
分类:
其他好文 时间:
2014-06-03 12:03:57
阅读次数:
233
Spell checkerTime Limit: 2000MSMemory Limit:
65536KTotal Submissions: 18351Accepted: 6732DescriptionYou, as a member of a
development team for a new s...
分类:
其他好文 时间:
2014-05-30 01:42:18
阅读次数:
241
AC自动机简介:KMP是用于解决单模式串匹配问题,
AC自动机用于解决多模式串匹配问题。精华:设这个节点上的字母为C,沿着他父亲的失败指针走,直到走到一个节点,他的儿子中也有字母为C的节点。然后把当前节点的失败指针指向那个字目也为C的儿子。如果一直走到了root都没找到,那就把失败指针指向root。...
分类:
其他好文 时间:
2014-05-24 09:36:42
阅读次数:
318
1 #include 2 3 4 using namespace std; 5 6 #define
MAX 255 7 8 typedef unsigned char BYTE; 9 10 typedef BYTE String[MAX+1]; 11 12
bo...
分类:
其他好文 时间:
2014-05-22 15:10:06
阅读次数:
278