根据题意,寻找子串出现的第k次的开头。寻找第k大,一般可以想到用主席树来维护。 但是这题还需要更多的转化,首先想到我们如果想知道子串匹配,一个可以考虑kmp,但是因为询问过多,不太科学。 一般还有两种,一种是哈希算法,一种是后缀数组求lcp。考虑哈希算法,感觉可做性不是很大,因为他要多次匹配。考虑后 ...
                            
                            
                                分类:
编程语言   时间:
2020-09-18 02:17:50   
                                阅读次数:
44
                             
                    
                        
                            
                            
                                最大回文子串匹配:暴力算法、中心拓展法、动态规划、manacher算法的理解和python实现 ...
                            
                            
                                分类:
编程语言   时间:
2020-05-21 13:22:07   
                                阅读次数:
57
                             
                    
                        
                            
                            
                                题意 有n个字符串,记为s1,s2……sn,s2与s1合并,合并的方式为:s1的后缀若与s2的前缀相同,就可以重叠起来,要最长的。 举个例子: “1333” “33345” → “133345” s1与s2合并后产生的字符串,再与s3合并,以此类推。 思路 两个字符串的子串匹配,比较容易想到哈希。  ...
                            
                            
                                分类:
其他好文   时间:
2020-02-12 16:12:06   
                                阅读次数:
69
                             
                    
                        
                            
                            
                                    模板格式如下。for(int i=n; i>0; i--) { for(int j=1; j<=26; j++) nex[i-1][j-'a'] = nex[i][j-'a']; //26是假定字符集为小写字母 nex[i-1][s[i]-'a'] = i; } ...
                            
                            
                                分类:
其他好文   时间:
2020-02-06 14:55:34   
                                阅读次数:
55
                             
                    
                        
                            
                            
                                    拓展KMP算法入门 博客推荐 "扩展KMP算法" , 图很形象,代码写的也很清晰,下面的模板就是出自该博客文章。 拓展KMP是求母串 长度为 和子串 长度为 ,求 的每一个后缀子串与 的前缀子串匹配的最长长度。 代码实现 ...
                            
                            
                                分类:
编程语言   时间:
2020-01-31 22:31:50   
                                阅读次数:
75
                             
                    
                        
                            
                            
                                    函数原型 string.find(s, pattern [, init [, plain]] ) s: 源字符串 pattern: 待搜索模式串 init: 可选, 起始位置 plain: 我没用过 ① 子串匹配: 注意: lua 里面数组或者字符串的字符, 其下标索引是从 1 开始, 不是 0 s ...
                            
                            
                                分类:
其他好文   时间:
2019-11-06 15:09:28   
                                阅读次数:
106
                             
                    
                        
                            
                            
                                    正则 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 Nlife+a,可以匹配Nlifea,Nlifeea,Nlifeeea ...... ,+号代表前面的字 ...
                            
                            
                                分类:
其他好文   时间:
2019-10-28 23:53:37   
                                阅读次数:
127
                             
                    
                        
                            
                            
                                    **explain:**python3中的re库是一个正则匹配的函数库,里面包含了各种功能的正则函数,下面,我们一起学习下其中的几个常用函数 * **match()方法**: 从主串的起始位置开始匹配一个子串,匹配成功,返回匹配信息,不成功则返回NONE print(re.match("www",  ...
                            
                            
                                分类:
编程语言   时间:
2019-05-16 10:58:05   
                                阅读次数:
127
                             
                    
                        
                            
                            
                                KMP子串匹配算法精髓在确定next数组上,确定next数组注意以下几点: next[0]=-1; next[1]=0; 前面两点是固定的。后面的需要通过递归的思想推导出来: 试想next[j]=k,那么next[j+1]应该等于多少,如果string[j]=string[next[j]],那就说明 ...
                            
                            
                                分类:
编程语言   时间:
2019-02-22 18:29:56   
                                阅读次数:
180
                             
                    
                        
                            
                            
                                    一个串建SAM,一个串在上面跑DP 需要注意,走到当前节点的时候,有可能走的是近路,并不能把当前节点表示的所有子串匹配,这个时候就要记录一下走的步数(类似caioj那题),那些被当前点表示的,长度不超过步数的子串才有资格更新答案。 这个东西我用g来维护 然后他去更新其他人就没有这个限制了,用h表示覆 ...
                            
                            
                                分类:
其他好文   时间:
2018-12-02 16:10:00   
                                阅读次数:
236