138.括号序列(区间型DP)
题目描述 Description
我们用以下规则定义一个合法的括号序列:
(1)空序列是合法的
(2)假如S是一个合法的序列,则 (S) 和[S]都是合法的
(3)假如A 和 B 都是合法的,那么AB和BA也是合法的
例如以下是合法的括号序列:
(),
以下是不合法括号序列的:
(,
输入描述 Input
Description
输入包括号序列S。含最多100个字符(四种字符: '(', ')', '[' and ']') ,都放在一行,中间没有其他多余字符。
输出描述 Output
Description
使括号序列S成为合法序列需要添加最少的括号数量。
样例输入 Sample
Input
([()
样例输出 Sample
Output
2
数据范围及提示 Data Size &
Hint
【样例说明】 最少添加2个括号可以得到合法的序列:()[()]或([()]) 【数据范围】 S的长度<=100(最多100个字符)。
代码:
#include< iostream >
using namespace std;
char p[101];
int f[101][101];
#include< cstdio >
#include< cstring >
int main()
{
scanf("%s",p+1);
int lena=strlen(p+1);
for(int i=1;i<=lena;++i)
for(int i=lena-1;i>=1;--i)
}
printf("%d\n",f[1][lena]);
return 0;
}