摘要:
题意: 取一字符串不相交的前缀和后缀(可为空)构成最长回文串。 思路: 先从两边取对称的前后缀,之后再取余下字符串较长的回文前缀或后缀。 讲解: 这道题主要是需要考虑的情况太多,比如说只有一个字符的情况下我是用if来判断输出还是用以下这种解法 这个解法的巧妙之处就是在于不用考虑是几个字符,因为在输出 阅读全文
posted @ 2020-04-01 19:17
waryan
阅读(175)
评论(0)
推荐(2)
摘要:
Manacher算法-又叫马拉车算法 概要: Manacher算法主要用于求最长回文串,在求最长回文串的时候做了处理使长度均变成了奇数 处理方式:s[0]='$',从s[1]开始两边都有其他符号 然后用一个数组 P[i] 来记录以字符S[i]为中心的最长回文子串向左/右扩张的长度(包括S[i],也就 阅读全文
posted @ 2020-04-01 18:56
waryan
阅读(448)
评论(0)
推荐(1)
摘要:
一:Kmp算法 概要: Kmp算法中nxt数组为重要组成部分,nxt数组所存的内容为:next[i]表示前i个字符组成的子串的最长相同前缀和后缀的长度,要注意应用中提出的nxt[i]变化(方便在匹配两个字符串时候跳动减少时间复杂度) nxt数组模板: 以i=1为起点的字符串进行处理 void get 阅读全文
posted @ 2020-04-01 18:47
waryan
阅读(151)
评论(0)
推荐(1)