NYOJ15:括号匹配(二)(区间dp)
来源:互联网 发布:vb自定义数据类型 编辑:程序博客网 时间:2024/04/30 01:53
括号匹配(二)
时间限制:1000 ms | 内存限制:65535 KB
难度:6
- 描述
- 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。
如:
[]是匹配的
([])[]是匹配的
((]是不匹配的
([)]是不匹配的- 输入
- 第一行输入一个正整数N,表示测试数据组数(N<=10)
每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,S的长度不超过100 - 输出
- 对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组测试输出占一行
- 样例输入
4[]([])[]((]([)]
- 样例输出
003
2
# include <stdio.h># include <string.h>int min(int a, int b){ return a<b?a:b;}bool match(char a, char b){ if((a=='(' && b==')') || (a=='['&&b==']')) return true; return false;}int main(){ int t, len, n, i, imin, j, k, dp[102][102]; scanf("%d",&t); char s[102]; while(t--) { memset(dp, 0, sizeof(dp)); scanf("%s",s); n = strlen(s); for(i=0; i<n; ++i)//初始化 dp[i][i] = 1; for(len=1; len<n; ++len)//枚举区间长度 for(i=0; i+len<n; ++i) { imin = 999999999; if(match(s[i],s[i+len])) imin = dp[i+1][i+len-1]; for(k=i; k<i+len; ++k)//找出最小值 imin = min(imin,dp[i][k]+dp[k+1][i+len]); dp[i][i+len] = imin; } printf("%d\n",dp[0][n-1]); } return 0;}
0 0
- nyoj15括号匹配(二)【区间dp】
- NYOJ15 括号匹配(二)(区间DP)
- 括号匹配(二)NYOJ15(简单区间dp)
- NYOJ15:括号匹配(二)(区间dp)
- NYOJ15 括号匹配(二)(区间dp)
- NYOJ15括号匹配(=)区间DP
- NYOJ15-括号匹配(二)-区间DP
- nyoj15-括号匹配(二)
- NYOJ15 括号匹配(二)
- nyoj15括号匹配(二)
- nyoj15括号匹配(二)
- NYOJ15括号配对(二)(区间dp)
- NYOJ15 - UVA1626 括号匹配问题(区间dp)
- NYOJ15——括号匹配(二)
- NYOJ 括号匹配(二) 区间DP
- 括号匹配(二) 区间DP
- NYOJ 括号匹配(二)(区间dp)
- NYOJ_15_括号匹配(二)【区间DP】
- BPM嵌入式流程解决方案分享
- java高并发解决方案
- mysql时间比较
- jquery关于移动端的点击事件解析
- 下载一个应用到SD卡然后启动系统的安装程序
- NYOJ15:括号匹配(二)(区间dp)
- NYOJ 题目108 士兵杀敌(一)
- Compensating-Transaction模式
- 冒泡,选择,插入,时间复杂度O(n2)算法感悟(此博文属于对于排序过程有大概了解的同学)
- Android中常见的内存泄露分析
- JavaScript: Introduction to JavaScript
- rdd转换为DataFrame
- 欢迎使用CSDN-markdown编辑器
- 海龟绘图-字符串