长尾关键词爱站深圳华强北赛格大楼晃动
news/
2025/10/9 8:55:55/
文章来源:
长尾关键词爱站,深圳华强北赛格大楼晃动,扁平化设计 网站,小程序制作一个需要多少钱647. 回文子串
题目链接/文章讲解#xff1a;代码随想录 视频讲解#xff1a;动态规划#xff0c;字符串性质决定了 DP 数组的定义 | LeetCode#xff1a;647.回文子串_哔哩哔哩_bilibili
class Solution {public int countSubstrings(String s) {// 将字符串转换为字符数…647. 回文子串
题目链接/文章讲解代码随想录 视频讲解动态规划字符串性质决定了 DP 数组的定义 | LeetCode647.回文子串_哔哩哔哩_bilibili
class Solution {public int countSubstrings(String s) {// 将字符串转换为字符数组便于后续处理char[] chars s.toCharArray();int len chars.length; // 获取字符串的长度// 创建一个二维布尔数组用于记录子串是否为回文boolean[][] dp new boolean[len][len];int result 0; // 用于计数回文子串的数量// 从字符串的最后一个字符开始向前遍历for (int i len - 1; i 0; i--) {// 从当前字符位置向后遍历for (int j i; j len; j) {// 如果两个字符相等if (chars[i] chars[j]) {// 情况一字符间隔为0相同的字符或情况二字符间隔为1两个相同字符组成的子串if (j - i 1) {result; // 计数加一dp[i][j] true; // 标记为回文}// 情况三判断子串中间部分是否为回文else if (dp[i 1][j - 1]) {result; // 计数加一dp[i][j] true; // 标记为回文}}}}return result; // 返回回文子串的总数量}
}516.最长回文子序列
题目链接/文章讲解代码随想录 视频讲解动态规划再显神通LeetCode516.最长回文子序列_哔哩哔哩_bilibili
class Solution {public int longestPalindromeSubseq(String s) {// 将字符串转换为字符数组char[] chars s.toCharArray();int len chars.length;// 创建一个二维数组 dp用于存储子问题的解int[][] dp new int[len][len];// 初始化 dp 数组所有单字符的回文子序列长度为 1for (int i 0; i len; i) {dp[i][i] 1; // 单个字符的回文子序列长度为 1}// 从后向前遍历字符串for (int i len - 1; i 0; i--) {// 从 i1 开始遍历确保 j 始终大于 ifor (int j i 1; j len; j) {// 如果当前字符相同则找到一个回文子序列if (chars[i] chars[j]) {// 当前字符相同回文长度为 dp[i 1][j - 1] 2dp[i][j] dp[i 1][j - 1] 2;} else {// 如果字符不同取去掉当前字符后得到的最大回文子序列长度dp[i][j] Math.max(dp[i][j - 1], dp[i 1][j]);}}}// 返回从字符串开始到结束的最长回文子序列长度return dp[0][len - 1];}
}动态规划总结篇
总结代码随想录
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932323.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!