题目
解题思路
-
状态定义:
- d p [ i ] [ j ] dp[i][j] dp[i][j] 表示使区间 [ i , j ] [i,j] [i,j] 的括号序列合法所需插入的最少括号数
-
转移方程:
- 当 s [ i ] s[i] s[i] 和 s [ j ] s[j] s[j] 匹配时: d p [ i ] [ j ] = d p [ i + 1 ] [ j − 1 ] dp[i][j] = dp[i+1][j-1] dp[i][j]=dp[i+1][j−1]
- 否则: d p [ i ] [ j ] = min ( d p [ i + 1 ] [ j ] + 1 , d p [ i ] [ j − 1 ] + 1 ) dp[i][j] = \min(dp[i+1][j] + 1, dp[i][j-1] + 1) dp[i][j]=min(dp[i+1][j]+1,dp[i][j−1]+1)
代码
#include <bits/stdc++.h>
using namespace std;
int dp[105][105];
bool match(char left, char right) {
return (left == '(' && right == ')') || (left == '

最低0.47元/天 解锁文章
902

被折叠的 条评论
为什么被折叠?



