Implement strStr().
Returns a pointer to the first occurrence of needle in haystack, or null if
needle is not part of haystack.
解题思路:
strstr()函数隶属标准库string.h头文件,其内部的实现是O(n^2)的时间复...
分类:
其他好文 时间:
2014-07-18 21:25:18
阅读次数:
328
今天是字符串填坑的一天,首先填的第一个坑是扩展KMP。总结一下KMP和扩展KMP的区别。在这里s是主串,t是模式串。KMP可以求出的是以s[i]为结尾的串和 t前缀匹配的最长的长度。假如这个长度是L的话,则:s[i-L+1...i]=t[0...L]而所谓的失配指针f[i]指的就是当前i点失配时要匹...
分类:
其他好文 时间:
2014-07-18 16:25:23
阅读次数:
272
#include#includevoid getNext(int *Next,char* src){ int i,j; Next[0]=-1; i=0; j=-1; int N=strlen(src); while(i<N-1){ if(j==-1||src[i]==src[j]){ ++i;...
分类:
其他好文 时间:
2014-07-16 21:33:22
阅读次数:
222
在一个长串中查找一个子串是较常用的操作。各种信息检索系统,文字处理系统都少不了。本文介绍一个非常著名的KMP模式匹配算法用于子串查找...
分类:
其他好文 时间:
2014-07-16 17:09:49
阅读次数:
177
处理字符串的过程中,难免会遇到字符匹配的问题。常用的字符匹配方法1. 朴素模式匹配算法(Brute-Force算法) 求子串位置的定位函数Index( S, T, pos). 模式匹配:子串的定位操作通常称作串的模式匹配。 目标串:主串S。 模式串:子串T。 匹配成功:若存在T的每个字符依次...
分类:
其他好文 时间:
2014-07-14 21:03:19
阅读次数:
286
All in All题意:字符串匹配#include #include char S[200000];char P[200000];int next[200000];int KMP(int pos, int len1, int len2){ int i = pos, j = 1, k = 0;...
分类:
其他好文 时间:
2014-07-13 20:09:39
阅读次数:
175
本题就是给出很多对字符串,然后问一个字符串在另外一个字符串出现的次数。
就是所谓的Strstr函数啦。
Leetcode有这道几乎一模一样的题目。
使用KMP算法加速,算法高手必会的算法了。
另外看见讨论说什么使用KMP还超时,最大可能是没有真正理解next table的含义,写了错误的代码,故此虽然自己运行结果正确,但是却没有真正发挥next table的作用,使得算法退化为暴力法了,所...
分类:
其他好文 时间:
2014-07-13 18:41:48
阅读次数:
229
本题是计算一个字符串能完整分成多少一模一样的子字符串。
原来是使用KMP的next数组计算出来的...
分类:
其他好文 时间:
2014-07-13 18:21:28
阅读次数:
250
看完题目你很容易想到,这个题目的关键点就是如何把给出的数组还原成原数组。
还原的原数组之后不管是AC自动机 还是 kmp都可以解决 - -虽然我觉得kmp会超时的感觉。
那么如何还原这个字符串就是在个题目的难点。。。
gc$aaac
1234567
排序之后变成了
$aaaccg
3456271
然后你按照排序后的下标依次走过去
会发现
$->a-...
分类:
其他好文 时间:
2014-07-12 22:10:26
阅读次数:
256