美文网首页
动态规划最长回文子串

动态规划最长回文子串

作者: Ucan先生 | 来源:发表于2020-07-25 16:42 被阅读0次
func longestPalindrome(s string) string {
    if s == ""{
        return ""
    }
    slen := len(s)
    //初始化对角线
    var arr =  make([][]int,slen)
    for i:=0;i<slen;i++{
        arr[i]=make([]int,slen)
        arr[i][i] = 1;
    }

   //动态方程  左下代表子串 子串是回文,当前左右相等则为回文

    for r:=1;r<slen;r++{
        for l:= 0;l<r;l++{
          if s[r] != s[l]{
              arr[l][r]=0
          } else {
              //当前字符相等 并且长度为3个以内,必然为回文.解决了对角线下不存在的问题
              if r-l<3{
                  arr[l][r]=1
              }else{
                arr[l][r]= arr[l+1][r-1]
              }
          }
        }
    }

    maxstr := ""
    maxlen := 0
    for j:=0;j<slen;j++{
       for i:= 0;i<=j;i++{
           if arr[i][j]==1 && j-i+1>maxlen {
               maxlen = j-i+1
               maxstr = s[i:j+1]
           }
       }
    }
    return maxstr;
}

相关文章

  • 【leetcode-动态规划】最长回文子串

    【leetcode-动态规划】最长回文子串 题目: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s...

  • Longest Palindrome Substring

    问题 求最长回文子串 思路 如果考虑O(n)的动态规划,比如用f(i)来代表以当前位置为结尾的回文子串的最大长度,...

  • 动态规划最长回文子串

  • [动态规划]最长回文子串

    给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "b...

  • 【leetcode5】 5. Longest Palindrom

    关键字:动态规划、回文字符串 难度:Medium 题目大意:输出一个字符串的最长回文子串 题目: 解题思路: 思路...

  • 最长回文子串

    动态规划典型题目思考1、字符串相关知识2、遍历回文子串的方法3、可以求逆串,然后找最长公共子串 lc 5 之前记长...

  • 动态规划10:最长回文子串

    题目 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 输入: "baba...

  • 5、Longest Palindromic Substring

    题设(最长回文串) 要点 动态规划 1、单个字母肯定是回文串;2、如果字符串S[i,j],S[i] != S[j]...

  • python求最长公共子串

    最长公共子串的动态规划公式:

  • 字符串

    1 最长无重复字符子串 2 最长上升子序列(动态规划) 3 最长公共子序列的长度(动态规划) 4 对于一个字符串,...

网友评论

      本文标题:动态规划最长回文子串

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