括号匹配(二)nyoj
来源:互联网 发布:免费下载最新版淘宝网 编辑:程序博客网 时间:2024/05/29 19:30
#include<stdio.h>#include<string.h>char _stack[205];int head = -1;int rear;void pop(){ head--;}void push(char ch){ _stack[++head] = ch;}char top(){ return _stack[head];}int main(){ int n; int i; int j; int cnt; int run; char str[105]; scanf("%d",&n); while(n--) { cnt = 0; head = -1; scanf("%s",str); for(i=0; i<strlen(str); i++) { switch(str[i]) { case '(': case '[': push(str[i]); break; case ']': if(top()=='[') pop(); else if(top()=='(') { run = 1; for(j=0; j<head; j++) { if(_stack[j]=='[') { pop(); cnt++; i--; run = 0; break; } } if(run) cnt++; } else cnt++; break; case ')': if(top()=='(') pop(); else if(top()=='[') { run = 1; for(j=0; j<head; j++) { if(_stack[j]=='(') { pop(); cnt++; i--; run = 0; break; } } if(run) cnt++; } else cnt++; break; default: break; } } cnt+=head+1; printf("%d\n",cnt); }}
RT记录一下 标程式DP也帖一下以后看
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=110;char tab[maxn];int f[maxn][maxn];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
- 括号匹配(二)nyoj
- NYOJ-括号匹配(二)
- NYOJ - 括号匹配(二)(经典dp)
- nyoj 15 括号匹配(二)
- nyoj-括号匹配(二)---动态规划
- NYOJ 括号匹配(二) 区间DP
- NYOJ 15 括号匹配(二)
- NYOJ 15 括号匹配(二) dp
- NYOJ 15 括号匹配(二)
- nyoj 括号匹配(二) 【DP】
- NYOJ 15 括号匹配(二)
- NYOJ 15 括号匹配(二)
- NYOJ 括号匹配(二)(区间dp)
- NYOJ-括号匹配(二)-动态规划
- nyoj 15 括号匹配(二)
- NYOJ-15 括号匹配(二)
- nyoj 括号匹配(二)(区间dp)
- NYOJ 15 括号匹配(二)(区间dp)
- java内存分配分析/栈内存、堆内存
- android shareduserid
- Largest prime factor(素数表的巧用)
- AVURLAsset cache
- java保留两位小数4种方法
- 括号匹配(二)nyoj
- 仿qq省市区三级联动js
- 快速生成数据库字典
- java doCsvExport
- ios输出特殊符号
- BroadLink刘宗孺:Wi-Fi技术在智能家居的发展前景
- 个人关注点:微信,
- Java IO流字节读取
- 查看linux系统版本命令