Aimee 很简单的kmp小题目 设最小单元为s的话,显然$L>L_s$ 那么的话,假如给的串串为s+一个s的后半截,那么显然ne[end]会匹配到出现在完整串的位置 这样 L-ne[end]就是答案了 其余同理 #include<iostream> #include<cstring> #inclu ...
分类:
其他好文 时间:
2020-11-13 12:56:06
阅读次数:
6
今天又是自闭的一天呢,感觉自己的字符串学假了(果然还是我tcl) deaf,wand又又又AK了 T1是一个kmp,然而我不会,写了个N^2 O玄,然而得了80分(果然是我太菜了老师都看不下去了数据放水了) T2原题[USACO2015 open] Palindromic Paths 回文路径 是一 ...
分类:
其他好文 时间:
2020-11-01 20:54:32
阅读次数:
18
已经2年多没更新博客了,2年前这时候我还在准备考研,现在都研二了,时间过得可真快呀,研究生3年也转瞬即逝。最近稍微有点时间,于是在刷Leetcode,昨天遇到了一道题,是字符串匹配问题,我一看就知道用KMP算法,题目如下: 28. Implement strStr() 该题难度为easy,但我感觉K ...
分类:
编程语言 时间:
2020-10-09 20:47:51
阅读次数:
17
KMP算法 举例 假设我们有字符串: GTGTGAGCTGG 并且有模式串 GTGTGCF 算法解析 我们需要创建模式串的next,他表示当两个字符串进行模式匹配失败的时候,需要从模式串的哪一个位置重新开始匹配 例如上面两个字符串 012345678910 G T G T G A G C T G G ...
分类:
编程语言 时间:
2020-09-18 03:17:14
阅读次数:
45
根据题意,寻找子串出现的第k次的开头。寻找第k大,一般可以想到用主席树来维护。 但是这题还需要更多的转化,首先想到我们如果想知道子串匹配,一个可以考虑kmp,但是因为询问过多,不太科学。 一般还有两种,一种是哈希算法,一种是后缀数组求lcp。考虑哈希算法,感觉可做性不是很大,因为他要多次匹配。考虑后 ...
分类:
编程语言 时间:
2020-09-18 02:17:50
阅读次数:
44
ABC咕咕咕 D. Walking Between Houses 有 \(n\) 个点第 \(i\) 个的坐标是 \(i\),一次操作可以从当前点走到任意另一个点,问能否走恰好 \(k\) 步,从 $1$ 开始走,从 \(n\) 结束,距离和恰好 \(=s\),给出构造。 \(n \leq 10^9 ...
分类:
其他好文 时间:
2020-09-17 22:17:50
阅读次数:
29
题目链接 题意:求n个串的公共子串 思路:由于数据比较小,所以可以暴力枚举第一个串的所有子串,进行kmp匹配。 #include<bits/stdc++.h> using namespace std; typedef long long ll; char ans[100]; int Next[100 ...
分类:
其他好文 时间:
2020-09-17 20:43:05
阅读次数:
30
KMP:一种模式匹配算法 重点:next数组:长度就是模式子串的长度 next[i]的值是若第i个位置不匹配则下一个要进行匹配的首地址 重点理解前缀后缀:例如:abcabc的最长前缀abc,后缀abc, aaaa的前缀是aaa(aaaa就没有意义了)后缀是aaa. 分析:j值回溯:j返回到前一个失配 ...
分类:
编程语言 时间:
2020-09-11 14:12:53
阅读次数:
42
实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1: 输入: haystack = "hello", needle = "ll"输 ...
分类:
编程语言 时间:
2020-08-15 22:25:23
阅读次数:
56
具体讲解https://blog.csdn.net/v_JULY_v/article/details/7041827 两个概念得需要知道: 前缀:指的是字符串的子串中从原串最前面开始的子串,如abcdef的前缀有:a,ab,abc,abcd,abcde 后缀:指的是字符串的子串中在原串结尾处结尾的子 ...
分类:
编程语言 时间:
2020-08-07 18:08:34
阅读次数:
70