美文网首页
刷Lintcode最长子串问题

刷Lintcode最长子串问题

作者: 2a25936eedd9 | 来源:发表于2017-01-04 23:45 被阅读0次

给出两个字符串,找到最长公共子串,并返回其长度。

样例

给出A=“ABCD”,B=“CBCE”,返回 2

1.我的想法:

双循环遍历,找出相同的子串,设置临时变量tmp记录字串长度,将tmp保存在数组中,最后在数组中找最大值。

2.需要解决的问题:

什么时候将tmp放入数组中呢? 我的想法是当A,B符号串的下一个符号不相等时,或者A,B符号串其中之一遍历到头了,这个时候将其放入。

3.遇到的困难,

针对2.我写了if判断语句,但是最后编译有问题。思来想去并不知道哪里出了错。

4.答案:

答案的思路与1.相似,只是他使用了一个矩阵,用(i-1,j-1)代表A[i-1] B[j-1]的状态。算法是如果两者相等,则(i-1,j-1)的值等于(i-2,j-2)的值加一,否则为0;这样做很巧妙,最后只需要在矩阵中找出最大值就可以了。它避免了我2.中需要判断何时存入值的问题。

5.启示:

1.可以加构一个新的数据结构来存储有用的信息,2.累积计算的思想避免了人为的择时,3.从后往前判断比从前往后判断有优势:避免了可能的溢出。参考动态规划的思想。

相关文章

  • 刷Lintcode最长子串问题

    给出两个字符串,找到最长公共子串,并返回其长度。 样例 给出A=“ABCD”,B=“CBCE”,返回 2 1.我的...

  • Manacher算法求解最长回文子串

    一、背景 最近在LintCode上面刷题时遇到了一个求解最长回文子串的问题,这个题目可以使用暴力的方式去进行求解,...

  • 【算法】字符串和数组操作01

    1、无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 **最长子串 **的长度。 示例: 2、最...

  • leetcode刷题之字符串

    leetcode刷题,使用python 1, 无重复字符的最长子串 —— 0003 字符串 给定一个字符串 s ,...

  • 算法学习——求最长无重复子串

    LeetCode刷题:3. 无重复字符的最长子串 题目要求如下: 解题思路 字符串拼接子串 滑块思想 Swift实现源码

  • 滑动窗口

    [TOC] Leetcode刷题 3. 无重复字符的最长子串[https://leetcode-cn.com/pr...

  • Manacher算法

    最长回文子串问题# 给定一个字符串,找出最长的回文子串,如"waabwswbfd",则最长子串为bwsb. 中心试...

  • 最长子串

    题目 Given a string, find the length of the longest substri...

  • [LintCode] Substring Anagrams

    不是专门刷LintCode也没时间没耐心,只是刷贴吧看到这个问题就看了一下发现Python真的太棒了。 网上有符合...

  • Java 无重复字符的最长子串

    问题 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 示例 代码

网友评论

      本文标题:刷Lintcode最长子串问题

      本文链接:https://www.haomeiwen.com/subject/kwpavttx.html