数据结构—栈应用(二)括号比配问题
来源:互联网 发布:订货软件 编辑:程序博客网 时间:2024/06/01 23:37
分析一下:
1,发现左括号就入栈,发现右括号去找是否有与之匹配的左括号,有匹配的就出栈,把与之匹配的左括号从栈中删除。以此类推; [ ( ) ]
2) 当发现某一个右括号时,如果此时的栈已空,说明右括号多于左括号; [ ( ) ] ]
(3) 从栈中弹出的左括号与当前检验的右括号类型不同,说明出现了括号交叉情况; [ ( ] ]
(4) 当表达式中输入的右括号全部匹配完后,发现栈还不为空,即还有左括号残留,说明左括号多于右括号。 [ [ ( ) ]
代码如下:
#include<stack>#include<cstring>#include<cstdio>#include<iostream>using namespace std;stack<char>p;string s;int main(){ int n; cin>>n; while(n--) { cin>>s; int ok = 1; if(s[0]==']'||s[0]==')') { ok = 0; } else{ for(int i=0;i<s.length();i++) { if(s[i]=='['||s[i]=='(') p.push(s[i]); else if(s[i]==']') { if(p.empty()||p.top()!='[') ok = 0; else p.pop(); } else if(s[i]==')') { if(p.empty()||p.top()!='(') ok = 0; else p.pop(); } } if(!p.empty()) ok = 0; } if(ok) printf("Yes\n"); else printf("No\n"); while(!p.empty()) { p.pop(); } }}
0 0
- 数据结构—栈应用(二)括号比配问题
- POJ1141,brackets sequence,括号比配的问题
- 数据结构(二)——栈及实现、括号匹配
- 看数据结构写代码(11)栈的应用(二) 括号匹配的检查
- NYOJ 2 括号配对问题 数据结构栈的应用
- 数据结构之栈的应用:括号匹配问题
- nyoj2括号配对问题(数据结构---栈)
- 数据结构栈应用括号匹配
- 数据结构——栈的应用 NOI2.2 括号匹配问题
- 括号匹配的检验(数据结构之栈 二)
- 【数据结构】栈的应用——检测括号是否匹配
- 【数据结构】栈的应用--括号的匹配(c++)
- 数据结构-栈的应用(进制转换,括号匹配)
- 数据结构题典021:栈的应用——括号匹配的检验(C++)
- 数据结构(1)——顺序栈的实现,以及括号匹配的应用
- 【学习点滴-数据结构-栈&队列】 栈的应用之二:括号匹配的检测
- 数据结构栈的应用之括号匹配
- 数据结构之 栈的应用 括号匹配
- oracle磁盘空间sql
- 链表的逆转(使用栈和动态数组)
- Part14
- 2017 蓝桥杯C/C++B组省赛 取数位
- 斐波纳契迭代算法与递归算法
- 数据结构—栈应用(二)括号比配问题
- Part15
- 代码风格
- 查询表空间使用率的sql
- 单调队列优化DP
- 二叉搜索树-《算法导论》学习笔记十一
- Code Jam 2017 Qualification Round Problem A. Oversized Pancake Flipper
- 路径中 使用斜杠/和反斜杠\的区别
- [unity3D基础篇02]必备的3D数学基础1