
华丽地处理字符串
MarioHo
有请各位多多教导
展开
-
字符串上的动态规划算法--------单字符串的情况
禁止字符串考虑只由‘A’,’G’,’C’,’T’四种字符组成的DNA字符串。给定一个长度为 k的字符串 S。请计算长度恰好为 n且不包含S的字符串的个数。输出个数mod 10009后的结果。首先,我们来考虑生成所有的满足条件的字符串这一直观的解法。字符串的个数可能高达4^n,这显然是行不通的。接下来,与其在生成字符串后再判断它是否包含 S,不如在穷竭搜索中每在末尾...原创 2018-04-26 00:48:37 · 497 阅读 · 0 评论 -
字符串上的动态规划算法--------多字符串的情况
DNA Repair考虑只由’A’,’G’,’C’,’T’四种字符组成的 DNA字符串。给定一个原字符串 S,和 n个禁止模式字符串 p1,p2,..,pn。请修改字符串 S,使得其中不包含任何禁止模式。 每次修改操作只能将 S中的某个字符修改为其他字符。 如果不存在这样的修改,请输出 -1,否则,输出所需的最少修改回数。 思路: 这个问题看起来与前面的问题...原创 2018-04-26 01:35:09 · 635 阅读 · 0 评论 -
字符串匹配----哈希算法
寻找字符串S中字符串T出现的位置或次数的问题属于字符串匹配问题。我们接下来讨论中假设S的字符串长度为 n,T的长度为m。最朴素的想法是,枚举所有起始位置,再直接检查 是否匹配,复杂度为O(nm)的算法。还有几个为高效的算法。而在此我们只介绍实现起来较为容易,而在一些稍作变化的问题中同样适用,并且可以简单地推广到二维情况的哈希算法。 将哈希算法用于字符串匹配的原理非常简单。对于每个起始位置,我们不...原创 2018-04-26 15:07:43 · 2600 阅读 · 0 评论 -
后缀数组---后缀数组的计算
字符串后缀(Suffix)指的是从字符串的某个位置开始到其末尾的字符串子串。我们认为原串和空串也是后缀。反之,从字符串开头到某个位置的字符串子串则成为前缀。 后缀数组指的是将某个字符串的所有后缀按字典序排序后得到的数组。不过数组中并不需要直接保存所有的后缀字符串,只要记录对应的起始位置就好了。下文中,我们用S[i..]来表示字符串S从位置i开始的后缀。 后缀数组不但能够高效计算得到,而且能够用...原创 2018-04-26 16:04:51 · 491 阅读 · 0 评论