动态规划
刷题的题解哈
Saber_e
这个作者很懒,什么都没留下…
展开
-
力扣 32 最长有效括号
32力扣 32 最长有效括号题目给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = “(()”输出:2解释:最长有效括号子串是 “()”题解首先,括号匹配是左括号匹配最近右括号。然后,dp[i]代表i位置能向前匹配最长的子串长度。假设前面dp[i]都满足,那转移的话就是。①左括号 dp[i]=0;②右括号 找到dp[i-1]前面的那个括号;如果为’(’,那么就可以匹配,dp[i] = dp[i-1]+2,想一下还要加原创 2021-10-25 15:02:48 · 86 阅读 · 0 评论 -
力扣 22 括号生成 generate-parentheses
力扣 22 括号生成 generate-parentheses括号生成题目数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。有效括号组合需满足:左括号必须以正确的顺序闭合。题解class Solution {public: vector<string> ans; vector<string> generateParenthesis(int n) { string ss=""; d原创 2021-10-24 15:28:29 · 95 阅读 · 0 评论 -
力扣 10 正则表达式匹配 regular-expression-matching
力扣 10 正则表达式匹配 regular-expression-matching正则表达式匹配题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。题解这题好像是动态规划的题,不过我当时没想出来,用dfs搜索也过了。先预处理,把字符串分为两种,一种正常的后面不加*,还有一种后面加*。struct stu{ ch原创 2021-10-24 15:23:42 · 119 阅读 · 0 评论 -
力扣 5 longest-palindromic-substring 最长回文子串
力扣 5 longest-palindromic-substring 最长回文子串题目给你一个字符串 s,找到 s 中最长的回文子串。最长回文子串题解dp[i][j] 代表从第i个位置到第j个位置是否为回文。转移方程为:dp[i][j] = dp[i+1][j-1]&&(s[i]==s[j])意思就是要判断当前的串是否回文,如果知道去掉头尾后是否回文在判断头尾是否相同就可以了。代码int dp[1005][1005];class Solution {public:原创 2021-10-24 14:55:55 · 86 阅读 · 0 评论