代码随想录训练营第五十七天
创始人
2024-05-10 04:08:26
0

1.回文子串 题647

①dp数组含义

判断回文子串可以用头元素和尾元素是否相等的方式,设dp[i] [j]为[i,j]子串是否为回文子串,是则为true,否为false。

②递推公式

若 s[i] == s[j] ,分三种情况:i == j,即只有一个元素,那么只有一个回文子串,结果为true;

​ j - i =1,比如aa,那么也是回文子串,结果为true;

​ j - i >=1, 就得看dp[i+1] [j-1]的结果,结果与dp[i+1] [j-1]相同。

在这里插入图片描述

③初始化

全部默认为false。

④遍历顺序

看递推方向,从下往上,从左到右。

在这里插入图片描述

class Solution {
public:int countSubstrings(string s) {vector> dp(s.size(), vector(s.size(), false));int result = 0;for (int i = s.size() - 1; i >= 0; i--) {  // 注意遍历顺序for (int j = i; j < s.size(); j++) {      //j必须大于等于iif (s[i] == s[j]) {if (j - i <= 1) { // 情况一 和 情况二result++;dp[i][j] = true;} else if (dp[i + 1][j - 1]) { // 情况三result++;dp[i][j] = true;}}}}return result;}
};

2.最长回文子序列 题516

首先是子序列,然后才是回文,而子序列不一定是连续的。

①dp数组含义

跟回文子串差不多。[i] , j]的范围的回文子序列的长度。

②递推公式。

分两种情况,若s[i] == s[j],那么dp[i] [j] = dp[i+1] [j-1] + 2

​ 若s[i] != s[j], 那么也有两种情况,由于回文子序列可以不连续,只取s[i] 或者 s[j] 也有可能构成回文子序列。故只取s[i] 为 dp[i] [j-1],只取s[j] 为dp[i+1] [j],取这两种情况的最大值。

在这里插入图片描述

③初始化

根据递推公式,i不断+1,j不断-1,不断向中间靠拢,直到i = j,而这里就是需要初始化的地方,i = j为一个元素,一个元素也为回文子序列,所以赋值1。

④遍历顺序

在这里插入图片描述

class Solution {
public:int longestPalindromeSubseq(string s) {vector> dp(s.size(), vector(s.size(), 0));for (int i = 0; i < s.size(); i++) dp[i][i] = 1;for (int i = s.size() - 1; i >= 0; i--) {for (int j = i + 1; j < s.size(); j++) {if (s[i] == s[j]) {dp[i][j] = dp[i + 1][j - 1] + 2;} else {dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);}}}return dp[0][s.size() - 1];}
};

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...