刷题训练 day49 | 第九章 动态规划 part17

题目1:

java 复制代码
class Solution {
    public int countSubstrings(String s) {
        boolean[][] dp = new boolean[s.length()][s.length()];
        int result=0;
        for(int i=dp.length-1;i>=0;i--){
            for (int j=i;j<dp[0].length;j++){
                 if (s.charAt(i)==s.charAt(j)){
                    if (j-i<=1){
                       dp[i][j]=true;
                       result++;
                    }else if (dp[i+1][j-1]==true){
                       dp[i][j]=true;
                       result++;
                    }
                 }
            }
        }
        return result;
    }
}

题目2:

java 复制代码
public class Solution {
    public int longestPalindromeSubseq(String s) {
        int len = s.length();
        int[][] dp = new int[len + 1][len + 1];
        for (int i = len - 1; i >= 0; i--) { // 从后往前遍历 保证情况不漏
            dp[i][i] = 1; // 初始化
            for (int j = i + 1; j < len; 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], Math.max(dp[i][j], dp[i][j - 1]));
                }
            }
        }
        return dp[0][len - 1];
    }
}
相关推荐
汉克老师几秒前
GESP2025年9月认证C++四级( 第三部分编程题(1)排兵布阵)
c++·算法·gesp4级·gesp四级
(●—●)橘子……4 分钟前
记力扣2009:使数组连续的最少操作数 练习理解
数据结构·python·算法·leetcode
介一安全6 分钟前
【Frida Android】基础篇6:Java层Hook基础——创建类实例、方法重载、搜索运行时实例
android·java·网络安全·逆向·安全性测试·frida
GalaxyPokemon7 分钟前
LeetCode - 1171.
算法·leetcode·链表
xyy202517 分钟前
Spring事务的传播方式
java·数据库·spring
@Kerry~25 分钟前
phpstudy .htaccess 文件内容
java·开发语言·前端
roshy25 分钟前
x86、arm、rsc-v指令集架构,指令集、OS、应用3者的关系
java·arm开发·架构
CRMEB系统商城26 分钟前
CRMEB多商户系统(PHP)v3.3正式发布,同城配送上线[特殊字符]
java·开发语言·小程序·php
budingxiaomoli33 分钟前
算法---双指针一
算法
iナナ35 分钟前
Java优选算法——位运算
java·数据结构·算法·leetcode