516. Longest Palindromic Subsequence

来源:互联网 发布:阿里巴巴 淘宝 便宜 编辑:程序博客网 时间:2024/06/05 15:11

516. Longest Palindromic Subsequence

  • 题目描述:Given a string s, find the longest palindromic subsequence’s length in s. You may assume that the maximum length of s is 1000.
  • Example 1:
    Input:
"bbbab"

​ Output:4

​ One possible longest palindromic subsequence is “bbbb”.

  • Example 2:
    Input:

    “cbbd”

    Output: 2

    One possible longest palindromic subsequence is “bb”.

  • 题目大意:给定一个字符串,找出字符串中最长的回文子串

  • 思路:DP dp[i][j]表示i到j范围最长的回文串 状态转移方程

    dp[i][j] = dp[i+1][j-1] + 2 if s.charAt(i) == s.charAt(j)otherwise, dp[i][j] = Math.max(dp[i+1][j], dp[i][j-1])
  • 代码

    package DP;/*** @author OovEver* 2017/12/25 11:03*/public class LeetCode516 {  public int longestPalindromeSubseq(String s) {//        dp[i][j]表示i到j范围最长的回文串//        dp[i][j] = dp[i+1][j-1] + 2 if s.charAt(i) == s.charAt(j)//        otherwise, dp[i][j] = Math.max(dp[i+1][j], dp[i][j-1])      int[][] dp = new int[s.length()][s.length()];      for(int i=s.length()-1;i>=0;i--) {          dp[i][i] = 1;          for(int j=i+1;j<s.length();j++) {              if (s.charAt(i) == s.charAt(j)) {                  dp[i][j] = dp[i + 1][j - 1] + 2;              } else {                  dp[i][j] = Math.max(dp[i + 1][j], dp[i][j - 1]);              }          }      }      return dp[0][s.length() - 1];  }}
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 屁特别多怎么回事 怀孕屁多怎么回事 老是放响屁怎么回事 屁多还臭怎么回事 孕妇屁多怎么回事 关我屁事 关你屁事和关我屁事 关你屁事关我屁事 老打屁是怎么回事 屁眼儿疼怎么回事 屁多且臭是怎么回事 阴道打屁是怎么回事 一天放很多屁是怎么回事 屁臭是怎么回事 总是放臭屁是怎么回事 屁多是怎么回事 网贷逾期一年屁事都没有了 放屁特别臭怎么回事 你在想屁吃什么梗 你在想屁吃 想屁吃什么意思 屁吃 打屁虫怎么吃 屁吃什么意思 吃什么多屁放 吃了红薯屁多是好事吗 大屁 打屁的原因 老打屁是什么原因 屁太多是什么病 屁太多了是怎么回事 打屁是什么原因 经常打屁是怎么回事 放个屁 胃胀屁多 新生儿屁多 屁多臭 婴儿屁多 怀孕屁多 宝宝屁多 一天放很多屁