leetcode516 最长回文子序列

举报
兔老大 发表于 2021/04/22 00:34:36 2021/04/22
【摘要】 给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "bbbb"。 示例 2: 输入: "cbbd" 输出: 2 一个可能的最长回文子序列为 "bb"。 思路: class Solution { public int longestPalindromeSu...

给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。

示例 1:
输入:

"bbbab"
输出:

4
一个可能的最长回文子序列为 "bbbb"。

示例 2:
输入:

"cbbd"
输出:

2
一个可能的最长回文子序列为 "bb"。

思路:


  
  1. class Solution {
  2. public int longestPalindromeSubseq(String s) {
  3. int n = s.length();
  4. int[][] f = new int[n][n];
  5. for (int i = n - 1; i >= 0; i--) {
  6. f[i][i] = 1;
  7. for (int j = i + 1; j < n; j++) {
  8. if (s.charAt(i) == s.charAt(j)) {
  9. f[i][j] = f[i + 1][j - 1] + 2;
  10. } else {
  11. f[i][j] = Math.max(f[i + 1][j], f[i][j - 1]);
  12. }
  13. }
  14. }
  15. return f[0][n - 1];
  16. }
  17. }

文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。

原文链接:fantianzuo.blog.csdn.net/article/details/103375511

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。