UVA673--Parentheses Balance
来源:互联网 发布:无间道3解析知乎 编辑:程序博客网 时间:2024/05/17 04:30
题意:
输入一个包含()和[]的括号序列,判断是否合法:
空串合法;
如果A、B都合法,则AB合法
如果A合法,则(A)和[A]合法
思路:
借助栈,左括号入栈,右括号如果匹配,栈顶出栈,继续,否则不合法。注意输入空行也合法。
代码:
#include<iostream>#include<string>#include<stdio.h>#include<stack>using namespace std;int main() { int n; cin >> n; getchar(); while (n--) { string str; stack<char> st; bool ok = true; getline(cin, str); if (str.empty()) { cout << "Yes" << endl; continue; } else { for (int i = 0; i < str.size(); i++) { if (str[i] == '(' || str[i] == '[') st.push(str[i]); else if (str[i] == ')') { if (st.empty()) st.push(str[i]); if (st.top() == '(') st.pop(); } else if (str[i] == ']') { if (st.empty()) st.push(str[i]); if (st.top() == '[') st.pop(); } } } cout << (st.empty() ? "Yes" : "No") << endl; } return 0;}
0 0
- uva673 Parentheses Balance
- UVA673 :Parentheses Balance
- UVA673- Parentheses Balance
- uva673-Parentheses Balance
- UVA673 Parentheses Balance
- uva673 - Parentheses Balance
- UVA673 - Parentheses Balance
- UVa673 Parentheses Balance
- UVA673 Parentheses Balance
- UVA673 Parentheses Balance
- uva673 Parentheses Balance
- uva673 Parentheses Balance
- uva673 - Parentheses Balance(栈)
- UVA673--Parentheses Balance
- uva673 Parentheses Balance(模拟+栈)
- Uva673——Parentheses Balance
- Uva673 Parentheses Balance(栈)
- uva673( Parentheses Balance)—线性表
- java学习
- 【并行计算-CUDA开发】CUDA bank conflict in shared memory
- one
- perl /m
- RTL综合<一>
- UVA673--Parentheses Balance
- bzoj 2431[HAOI] 逆序对数列
- Python入门教程一:Hello World
- Linux Mint (专题二:软件包管理)
- Centos7安装redis
- 分离字符串
- Android中的线程、进程和消息处理机制
- 一些线段树的题目
- Unity中的Socket通信(多个客户端的异步通信)