使用java代码实现!
public class Matching {
public static void main(String[] args) {
BF();
}
public static void BF() {
String BF_S = "aaaabbbaab"; //主串
String BF_T = "aaab"; //模式串
int BFSLeng...
分类:
编程语言 时间:
2015-05-01 17:26:14
阅读次数:
172
题目链接:http://poj.org/problem?id=3167题意:模式串可以浮动的模式匹配问题给出模式串的相对大小,需要找出模式串匹配次数和位置。思路:统计比当前数小,和于当前数相等的,然后进行kmp。比如说模式串:1,4,4,2,3,1 而主串:5,6,2,10,10,7,3,2,9,那...
分类:
其他好文 时间:
2015-04-30 15:54:32
阅读次数:
167
char str[1000010],pat[1000010];//pat为模式串,str为主串
int Next[1000010]; //Next[x]下标x表示匹配失败处字符下标
//模式串pat的前缀与x位置的后缀的最大匹配字符个数-1
void GetNext(char *pat)
{
int LenPat = strlen(pat);
int i = 0,j = -1;
...
分类:
其他好文 时间:
2015-04-28 21:10:30
阅读次数:
143
串替换:设串S="aqpbcderstbcdegh",子串T=“bcde",子串V="ff",实现子串V替代所有主串S中出现的和子串T相等的不重叠的子串,原主串S将由串S="aqpbcderstbcdegh",改变为S=“aqpffrstffgh"算法思想:串的替换算法由以下几个步骤(1)首先要在主...
分类:
其他好文 时间:
2015-04-28 01:47:57
阅读次数:
129
BM(Boyer-Moore)算法,后缀匹配,是指模式串的比较从右到左,模式串的移动也是从左到右的匹配过程,一般情况比KMP算法要快。时间复杂度O(m/n)C++描述(教师版)int BM(char S[],char T[], int n, int m){//主串长度为n,模式串长度为m,主串和模式...
分类:
编程语言 时间:
2015-04-01 19:31:34
阅读次数:
158
前面说到了字符串的模式匹配的暴力方法,同时在暴力方法的基础上做了一些改进:不让主串的匹配指针i回溯,通过发掘模式串的一些特性,不断的修改模式串的匹配指针。但是模式串的匹配指针怎么修改呢,那就得要结合其自身的一些特性,然后产生相应的修改值,记录在next[j]这个数组中。1. 寻找前缀后缀最长公共元素...
分类:
编程语言 时间:
2015-03-19 13:10:50
阅读次数:
290
在开始KMP算法之前,先来回顾一下字符串模式匹配的暴力法,具体的过程如下图所示: 注:图中两个串的匹配都是从1开始的,代码中的匹配都是从0开始的。 可以看到匹配主串的i的值是不断的回溯的,然而KMP三位大师发现这种回溯其实是不需要的,所以提出来这个算法来解决这个问题。 既然i值不能回溯了,也就是不能...
分类:
编程语言 时间:
2015-03-19 06:17:08
阅读次数:
158
AC自动机,其实就是Trie树与KMP的结合,且有dfa(有限状态机)的性质.
理解的关键点:
1. fail指针 起到回溯作用
2.每次匹配都是主串不动,移动指针now去回溯找后缀的前缀
3.一个优化点,将NULL指向root 编码更简单.
考察时一般也会问道dfa的性质.
AC自动机解决问题:
1.多模式串匹配
2.给定一个长度,满足XX条件能构造多少个.
ABCD ...
分类:
其他好文 时间:
2015-03-18 14:09:14
阅读次数:
138
#include#includeusing namespace std;//T为非空串,若主串S中的第pos个字符串之后存在与T相等的子串//则返回第一个这样子串的位置,否则返回0int string_compare(string A,int i,string B);int Index(string...
分类:
其他好文 时间:
2015-03-17 17:48:30
阅读次数:
119
给定n个模式串在主串中出现了几个#include #include const int MAXPT=500007; //最大节点数const int size=26; //子节点数const char start='a'; //子节点标号对应关系 class Ac_Automat{pr...
分类:
其他好文 时间:
2015-03-15 00:35:39
阅读次数:
162