百度开户代理商,百度推广优化是什么?,苏州网站建设方式,网站建设官方网文章目录 day44#xff1a;动态规划over#xff0c;回文子串647.回文子串516.最长回文子序列 day44#xff1a;动态规划over#xff0c;回文子串
647.回文子串
class Solution {public int countSubstrings(String s) {
// 布尔类型的dp[i][j]#xff1a;表示区间范围[i… 文章目录 day44动态规划over回文子串647.回文子串516.最长回文子序列 day44动态规划over回文子串
647.回文子串
class Solution {public int countSubstrings(String s) {
// 布尔类型的dp[i][j]表示区间范围[i,j] 注意是左闭右闭的子串是否是回文子串
// 如果是dp[i][j]为true否则为falsechar[] chars s.toCharArray();int n s.length();boolean[][] dp new boolean[n][n];int ans 0;for (int i n - 1; i 0; i--) {for (int j i; j n; j) {if (chars[i] chars[j]) {if (j - i 1 || dp[i 1][j - 1]) {ans;dp[i][j] true;}}}}return ans;}
}516.最长回文子序列
class Solution {public int longestPalindromeSubseq(String s) {
// dp[i][j]字符串s在[i, j]范围内最长的回文子序列的长度为dp[i][j]int n s.length();char[] chars s.toCharArray();int[][] dp new int[n][n];for (int i 0; i n; i) dp[i][i] 1;for (int i n - 1; i 0; i--) {for (int j i 1; j n; j) {if (chars[i] chars[j])dp[i][j] dp[i 1][j - 1] 2;elsedp[i][j] Math.max(dp[i 1][j], dp[i][j - 1]);}}return dp[0][n - 1];}
}