代码随想录Day57-LeetCode 647 516

news/2024/9/23 4:35:52/

647-回文子串

题目链接:LeetCode-647中等
思考
在这里插入图片描述

情况一:下标i 与 j相同,同一个字符例如a,当然是回文子串
情况二:下标i 与 j相差为1,例如aa,也是回文子串
情况三:下标:i 与 j相差大于1的时候,例如cabac,此时s[i]与s[j]已经相同了,我们看i到j区间是不是回文子串就看aba是不是回文就可以了,那么aba的区间就是 i+1 与 j-1区间,这个区间是不是回文就看dp[i + 1][j - 1]是否为true。

class Solution {
public:int countSubstrings(string s) {vector<vector<bool>> dp(s.size(), vector<bool>(s.size(), false));int result = 0;for (int i = s.size() - 1; i >= 0; i--) {  // 注意遍历顺序for (int j = i; j < s.size(); j++) {if (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;}
};

516-最长回文子序列

题目链接:LeetCode-516中等
思考
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

class Solution {
public:int longestPalindromeSubseq(string s) {vector<vector<int>> dp(s.size(),vector<int>(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];}
};

http://www.ppmy.cn/news/387613.html

相关文章

【动态规划】LeetCode - 516. 最长回文子序列

516. 最长回文子序列 题目描述 给定一个字符串 s &#xff0c;找到其中最长的回文子序列&#xff0c;并返回该序列的长度。可以假设 s 的最大长度为 1000 。 示例 1: 输入: “bbbab” 输出: 4 一个可能的最长回文子序列为 “bbbb”。 示例 2: 输入: “cbbd” 输出: 2 一…

力扣:516.最长回文子序列

一开始以为是最长回文子串&#xff0c;这题就跟上题基本一致了&#xff0c;代码如下。但是题目所说的是最长回文子序列&#xff0c;此时就相当于做了两题了。 最长回文子串代码&#xff1a; class Solution { public:int longestPalindromeSubseq(string s) {vector<vector…

D-OJ刷题日记:有向图的邻接表表示法验证程序 题目编号:516

用邻接表表示有向图&#xff0c;完成图的创建、图的深度优先遍历、图的广度优先遍历操作。其中图的顶点信息是字符型&#xff0c;图中顶点序号按字符顺序排列&#xff0c;边的输入按照边的顶点序号从小到大的顺序排列&#xff0c;如下图的边的输入顺序为0 1&#xff0c;0 2&…

LeetCode:516. 最长回文子序列

516 最长回文子序列 给定一个字符串s&#xff0c;找到其中最长的回文子序列。可以假设s的最大长度为1000。 示例 1: 输入: “bbbab” 输出: 4 一个可能的最长回文子序列为 “bbbb”。 示例 2: 输入: “cbbd” 输出: 2 一个可能的最长回文子序列为 “bb”。 1 解法1&#xff1…

leetcode 516:最长回文子序列

leetcode 516. 最长回文子序列 题目描述&#xff1a;给定一个字符串s&#xff0c;找到其中最长的回文子序列。可以假设s的最大长度为1000。 解题步骤&#xff1a;解决此类问题可以采用动态规划 dp[i][j]表示从第i个字符到第j个字符之间的最长回文子串。该问题类似于01背包问题 …

ios拷贝文件,error code 516

今天写了一段拷贝文件的代码&#xff1a; NSBundle *bundle[NSBundle mainBundle];NSString *srcPath[bundle pathForResource:"images" ofType:"zip"];// Bundle内的images.zip文件NSString *enterprisePath [imagesPath stringByAppendingPathComponent…

LeetCode——516. 最长回文子序列

题目描述&#xff1a; 给定一个字符串 s &#xff0c;找到其中最长的回文子序列&#xff0c;并返回该序列的长度。可以假设 s 的最大长度为 1000 。 提示&#xff1a; 1 < s.length < 1000s 只包含小写英文字母 示例 1: 输入: “bbbab” 输出: 4 一个可能的最长回文子…

LC 516 最长回文子序列

LC 516 最长回文子序列 题目: 给你一个字符串 s &#xff0c;找出其中最长的回文子序列&#xff0c;并返回该序列的长度。 子序列定义为&#xff1a;不改变剩余字符顺序的情况下&#xff0c;删除某些字符或者不删除任何字符形成的一个序列。 输入&#xff1a;s "bbba…