UVa 673 Parentheses Balance
来源:互联网 发布:上海行知中学初中部 编辑:程序博客网 时间:2024/06/18 12:17
思路分析:
利用栈实现括号匹配即可。读取字符串后,遇到 ( 或 [ 则入栈; 遇到 ) ,若栈顶为( 则弹出,否则错误, ] 的处理类似。
注意点:
1. 每次看栈顶元素前,都要先判断栈空
2.每个字符串处理结束后,要看栈是否为空,如果不空,说明有剩余,则也说明匹配失败,视为错误
3.每个字符串处理前,先把栈清空,因为前一次处理可能有残留
4.注意空串的判定,题目中说明了空串为合法。因此输入的时候选择getline(cin,str) 这样可以输入空串
题解:
#include <iostream>#include <string>#include <stack>using namespace std;string str;stack<char> s;bool judge(string str){while(!s.empty()) s.pop();for(int i = 0; i < str.size(); i++){if(str[i] == '(' || str[i] == '[') s.push(str[i]);else if(str[i] == ')' && !s.empty() && s.top() == '(') s.pop();else if(str[i] == ']' && !s.empty() && s.top() == '[') s.pop();else return false;}if(!s.empty()) return false;return true;}int main(){int n;scanf("%d\n", &n);while(n--){getline(cin, str);if(judge(str)) printf("Yes\n");else printf("No\n");}return 0;}
阅读全文
0 0
- UVa 673 Parentheses Balance
- uva 673 - Parentheses Balance
- Uva 673 Parentheses Balance
- uva 673 - Parentheses Balance
- UVa 673 Parentheses Balance
- UVa 673 - Parentheses Balance
- UVA 673 Parentheses Balance
- UVa 673 - Parentheses Balance
- UVA 673 Parentheses Balance
- UVa 673 - Parentheses Balance
- Uva-673-Parentheses Balance
- UVa 673 - Parentheses Balance
- uva 673Parentheses Balance
- uva-673 Parentheses Balance
- UVA 673 Parentheses Balance
- UVa 673 - Parentheses Balance
- uva 673 - Parentheses Balance
- uva 673 Parentheses Balance
- nginx
- 前端-mui框架的div侧拉菜单,导致页面中按钮的点击事件无法响应的问题
- VMware 虚拟化编程(1) — VMDK/VDDK/VixDiskLib/VADP 概念简析
- Spring Boot学习案例开源项目
- nginx常用模块
- UVa 673 Parentheses Balance
- 穿插纸条 (第1-18关)交叉点计数
- 素数筛法模板 欧拉筛法
- 基于nginx架构的安全篇
- 【VB】浅识SQL注入
- BZOJ 5039([Jsoi2014]序列维护-线段树区间加,区间乘,区间求和)
- HBase最佳实践-读性能优化策略
- nginx性能优化
- “windows下安装TensorFlow” 手记