引入:最长公共子序列常用于解决字符串的相似度问题。最长公共子序列(LongestCommonSubsequence,LCS)与最长公共字串(LongestCommonSubstring):子串是串的一个连续的部分,子序列则是从不改变序列顺序,而从序列中去掉任意多个元素而获得的新的序列;也就是说,子串...
分类:
其他好文 时间:
2014-07-22 23:12:35
阅读次数:
357
题意:给一个字符串,问最长的一个子串A,他是前缀,同时是后缀,并且中间也出现过A。并且出现的三个A都不没有重叠部分。
解法:先KMP求出失配数组,然后将所有的是后缀且是前缀的打上标记,然后遍历整个next数组,(对于每个位置的next来说,一直next向前取就是找到此前缀的一个个是整个字符串前缀的后缀,比较绕)暴力枚举判断每个串的所有匹配前缀的后缀是否合法。
代码:/*****...
分类:
其他好文 时间:
2014-05-02 19:36:54
阅读次数:
476
获取字符串长度%x="abcd"#方法一%expr length $x4# 方法二%echo
${#x}4# 方法三%expr "$x" : ".*"4# expr 的帮助# STRING : REGEXP anchored pattern match
of REGEXP in STRING查找子串...
分类:
其他好文 时间:
2014-05-01 02:54:16
阅读次数:
404
在程序设计竞赛中,我们时常会遇到序列求最值的问题。在讲今天的问题之前,先小小的说明一下,子序列与子串的问题。
子序列:在原序列中不一定连续; 子串:在原序列中必须连续。 接下来,就开始今天要讲的最长公共子序列LCS(Longest Common
Subsequence).对于LCS这一类的...
分类:
其他好文 时间:
2014-05-01 01:38:24
阅读次数:
287
题意:给你一个数组,问你交换最多K个数以后,最大子串和为多少;解题思路:枚举这个数组最大字串和的起点和终点,然后优先队列交换这段里面的小数去换外面的大数,即可求出答案!解题代码:
1 // File Name: c.cpp 2 // Author: darkdream 3 // Created Ti...
分类:
其他好文 时间:
2014-04-29 21:44:33
阅读次数:
605
什么是后缀数组?后缀数组是一种解决字符串问题的有力工具。相比于后缀树,它更易于实现且占用内存更少。在实际应用中,后缀数组经常用于解决字符串有关的复杂问题。先介绍几个后缀数组中的基本定义:子串:字符串S
的子串r[i..j],i≤j,表示r 串中从i 到j 这一段,也就是顺次排列r[i],r[i+1]...
分类:
其他好文 时间:
2014-04-28 15:54:52
阅读次数:
564