括号匹配问题
来源:互联网 发布:如何开通淘宝 编辑:程序博客网 时间:2024/06/07 05:07
给你一些括号,类似于
((]))
[[]]
((([[)]])))
这种不是完全匹配的括号,问至少加多少个括号,能使它变成完全匹配的
dp思想,用的是递归的方法
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=110;char tab[maxn];int f[maxn][maxn];//f[i][j]是从i 到 j 凑成匹配括号的最小的加括号数int fun(int i,int j){ if(i>j)return 0; if(f[i][j]>=0)return f[i][j]; if(i==j)return f[i][j]=1; int va=maxn; if((tab[i]=='('&&tab[j]==')') || (tab[i]=='['&&tab[j]==']')) va=fun(i+1,j-1); for(int mid=i;mid<j;mid++){ va=min(va,fun(i,mid)+fun(mid+1,j)); } return f[i][j]=va;}int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ memset(f,-1,sizeof(f)); memset(tab,0,sizeof(tab)); scanf("%s",tab); cout<<fun(0,strlen(tab)-1)<<endl; }}
阅读全文
0 0
- 括号匹配问题
- 括号匹配问题
- 括号匹配问题
- 括号匹配问题
- 括号匹配问题
- 括号匹配问题
- 括号匹配问题
- 括号的匹配问题
- 括号匹配问题
- 括号匹配问题
- [栈] 括号匹配问题
- NY : 括号匹配问题
- 括号匹配问题
- Java 括号匹配问题
- 括号匹配问题
- 括号匹配问题
- 括号匹配问题
- 括号匹配问题
- 【bzoj2527】[Poi2011]Meteors
- Android 软键盘的打开关闭监听
- set() get()
- SaltStack实战应用
- 我是如何向老婆解释MapReduce的?
- 括号匹配问题
- 第十周项目1-验证算法(4)
- angularJS 学习
- 第8周项目2-顺序串算法
- Android Studio快捷键
- 如何成为一个合格的程序员杂谈(对于工作上的一些看法 勿喷)
- GitHub创建新仓库并上传项目(笔记)
- 洛谷 [P1341]无序字母对
- Java程序员最全面的学习路线图