2月10日学习总结
1、早上
感觉自己的KMP还不熟练,知识点也有点模模糊糊,于是把大话数据结构上面的KMP知识点看了一遍,然后做本周最后的那个连接字符题,发现用枚举怎么优化也还是直接T了,上午并没能做出那题。(3h)
2、下午
继续做最后那个题目,换了一种思路用的KMP,将两个字符串合并成一个后再用KMP找出最长前后缀。结合这个思路和昨天做的KMP题目,终于写出了代码,测试也比我那枚举快了许多,结果一交还是T的,最后进行优化终于还是对了,一下午就做了一个题目。(4h)
题解:本题就是要求出已合并字符串与待合并字符串的最长前后缀(注意并不是单纯的两两单词的最长的前后缀1),因此需要用到KMP,但传统的KMP都是只求一个字符串的前后缀,本题却求的是分别两个字符串的前缀和后缀的最长相等长度,那么我们可以进行一些转变。将已合并的字符串接到新的待合并字符串的后面,把两个字符串合并成了一个,而且也正好按顺序待合并前缀在前面已合并字符串后缀在后面,就正好符合KMP做法。但不只是单纯的直接把整个已合并字符串都放后面,因为它会越来越长,实现KMP的时间复杂度也会
2月10日学习总结最先出现在Python成神之路。
共有 0 条评论