题目大意 题意:给T组数据,每组有长度为n和m的母串和模式串。判断模式串是否是母串的子串,如果是输出最先匹配完成的位置,否则输出-1. 思考 直接套用模板。把char改成int。kmp函数中在模式串遍历到结尾的时候return,若没遍历到结尾,也就是不是子串返回-1 ...
分类:
其他好文 时间:
2017-06-08 13:59:59
阅读次数:
169
正则表达式 1. 匹配一个字符 2. 集合 3. 重复 4. 匹配位置 匹配单词边界,匹配成功要求A匹配到给定串的边界 使用时模式串要用r,因为\b还有其它意义 5. 设置标志 (?)是固定格式,后面的字母代表不同意思。 a(ASCII),i(IGNORECASE),L(LOCALE), m(MUL ...
分类:
编程语言 时间:
2017-06-03 12:53:12
阅读次数:
162
Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 44687 Accepted Submission(s): ...
分类:
其他好文 时间:
2017-05-28 10:56:16
阅读次数:
211
题目链接 设d[i]表示从下标i的字符开始的字符串的分解方法数,显然有倒序的递推公式。 需要求每个位置开始是否能组成模式串的前缀,才可以建立正确的递推。 ...
分类:
其他好文 时间:
2017-05-24 11:20:07
阅读次数:
154
转载自http://www.cnblogs.com/dolphin0520/ 十分感谢作者大大 KMP算法 KMP算法 在介绍KMP算法之前,先介绍一下BF算法。 一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S ...
分类:
其他好文 时间:
2017-05-21 21:41:05
阅读次数:
167
Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配。其核心思想是:在匹配过程中,模式串发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配,从而提高了匹配效率。 核心思想:在匹配过程中,模式串并不被要求一定要按从左向右进行比较还是从右向左进行比较,它在发现不匹配时, ...
分类:
编程语言 时间:
2017-05-15 19:39:33
阅读次数:
221
一:Brute force 从源串的第一个字符开始扫描,逐一与模式串的对应字符进行匹配,若该组字符匹配,则检测下一组字符,如遇失配,则退回到源串的第二个字符,重复上述步骤,直到整个模式串在源串中找到匹配,或者已经扫描完整个源串也没能够完成匹配为止。 缺点:假如我们从头开始匹配str1和str2,当匹 ...
分类:
编程语言 时间:
2017-05-14 13:53:45
阅读次数:
235
一、概要: KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的(先了解BF算法)。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。时间复杂度O(m+n)。 二、怎么求模式串next[n]的值: 定义: (1)next[0]= -1 意 ...
分类:
编程语言 时间:
2017-05-01 12:57:58
阅读次数:
287
Sunday是一个线性字符串模式匹配算法。算法的概念如下: Sunday算法是Daniel M.Sunday于1990年提出的一种字符串模式匹配算法。其核心思想是:在匹配过程中,模式串并不被要求一定要按从左向右进行比较还是从右向左进行比较,它在发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配 ...
分类:
编程语言 时间:
2017-04-30 10:57:19
阅读次数:
169
http://acm.hdu.edu.cn/showproblem.php?pid=5763 题意: 给出一个字符串和一个模式串,模式串有两种意思,问这句话有几种意思。 思路:因为肯定要去字符串去找模式串,所以首先用KMP计算next数组,然后用动态规划,d[i]表示分析到第i个字符时有多少种意思。 ...
分类:
其他好文 时间:
2017-04-27 14:47:49
阅读次数:
139