[NYOJ 15] 括号匹配(二)
括号匹配(二)
-
描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。
如:
[]是匹配的
([])[]是匹配的
((]是不匹配的
([)]是不匹配的
-
输入第一行输入一个正整数N,表示测试数据组数(N<=10)
每组测试数据都只有一行,是一个字符串S,S中只包含以上所说的四种字符,S的长度不超过100输出对于每组测试数据都输出一个正整数,表示最少需要添加的括号的数量。每组测试输出占一行样例输入
4
[]
([])[]
((]
([)]
- 样例输出
0
0
3
2
区间DP入门题
POJ 2955 只需要改一下输入、然后输出串的总长度-dp[1][n]即可
如果要输出补全后括号序列见 :http://www.cnblogs.com/hate13/p/4064062.html
#include<iostream> #include<cstdio> #include<cstring> using namespace std; #define min(a,b) ((a)<(b)?(a):(b)) #define INF 0x7fffffff #define N 110char s[N]; int dp[N][N]; //dp[i][j]是在i~j区间使括号配对的最小添加括号个数int judge(char c1,char c2) {if(c1=='(' && c2==')') return 1;if(c1=='[' && c2==']') return 1;return 0; }int main() {int n,i,j,k,len,T;scanf("%d",&T);while(T--){scanf("%s",s+1);n=strlen(s+1);for(i=1;i<=n;i++){dp[i][i]=1;}for(len=2;len<=n;len++){for(i=1;i<=n-len+1;i++){j=i+len-1;dp[i][j]=INF; //初始化for(k=i;k<j;k++){dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]);}if(judge(s[i],s[j])) dp[i][j]=min(dp[i][j],dp[i+1][j-1]);}}cout<<dp[1][n]<<endl;}return 0; }
转载于:https://www.cnblogs.com/hate13/p/4063845.html
[NYOJ 15] 括号匹配(二)相关推荐
- 457. 括号匹配二
[题目描述]: 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些 ...
- 7-3 括号匹配 (15 分)
** 7-3 括号匹配 (15 分) ** 给定一串字符,不超过100个字符,可能包括括号.数字.字母.标点符号.空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配. 输入格式: 输入在一行 ...
- [ACM_NYOJ_15]括号匹配(二)
括号匹配(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:6 描述 给你一个字符串,里面只包含"(",")","[", ...
- 数据结构(二)——栈及实现、括号匹配
一.栈的概念与特点 一种特殊的线性表,它的插入和删除运算均在同一端进行.这一端被称为栈顶,另一端为栈底,插入称为进栈,删除称为出栈.有后进先出的性质.栈顶top相当于顺序表中的size,即元素个数.关 ...
- 快速解决工作中遇到经典的括号匹配问题
问题来源:从缓存中取出的数据没有空格和换行,很难阅读,但又找不到像JSON一样的在线格式化工具.灵机一动,自己写了一个小程序将其格式化. 一.先看效果 1.原始数据长这样,难以阅读 MemCached ...
- 【区间dp】uva10003+ uva 1626 括号匹配问题 【有空自己记忆化写一下!!!】
讲道理,其实我还不是太懂,这个题看到了两种写法 之前大概想的差不多,要这样实现呀: 常规写法,大概n--3 递归写法,稍微好理解一点 好了,接下来自从看了liuchuo的博客我要变身玛丽苏橙色了 题目 ...
- python 栈_Python数据结构与算法05:基本结构:栈的应用之括号匹配
注:本文如涉及到代码,均经过Python 3.7实际运行检验,保证其严谨性. 本文阅读时间约为7分钟. 算法流程 括号匹配情况介绍 我们经常会遇到类似(9-1)*(8+7)/(4-2).print(& ...
- POJ 2955 Brackets(括号匹配一)
题目链接:http://poj.org/problem?id=2955 题目大意:给你一串字符串,求最大的括号匹配数. 解题思路: 设dp[i][j]是[i,j]的最大括号匹配对数. 则得到状态转移方 ...
- 栈应用之 括号匹配问题(Python 版)
栈应用之 括号匹配问题(Python 版) 检查括号是否闭合 循序扫描被检查正文(一个字符)里的一个个字符 检查中跳过无关字符(所有非括号字符都与当前处理无关) 遇到开括号将其压入栈 遇到闭括号时弹出 ...
最新文章
- Linux常用开发环境软件-jdk安装
- 去某大厂三面总监面,因为迟到了5分钟,面试官当着我的面把简历扔垃圾桶了...
- (转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)
- Downloading the Source
- python3.6.0安装教程-CentOS7安装Python3.6
- 建站四部曲之前端显示篇(React+上线)
- 多线程-单生产单消费模型
- oracle mysql 字段_Oracle和MySQL修改字段
- unity shader入门精要_Unity Shader 入门(一):渲染流水线
- 用c语言编程求分数和,用C语言编程平均分数
- 赣州服务器系统,赣州排名P级别服务器厂
- 深度学习:正则化方法
- Qt学习笔记(十九):QTreeWidget 的常用方法
- C#实现简单小说阅读器
- ITTAGE分支预测器 “A 64-Kbytes ITTAGE indirect branch predictor”
- RTX 4080、RTX4070 Ti 相当于什么水平
- C语言每日一练(5月2号)——水仙花数
- Python 实现微信测试号情侣纪念消息推送(消息群发)
- 使用Maven创建Servlet项目及优化流程
- 如何在Linux杀死进程的名字?