1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int a[128]; //括号优先级 char b[128]; //右括号 -> 左括号 int main() { a['<'] = 1; a['('] = 2; a['['] = 3; a['{'] = 4; b['>'] = '<'; b[')'] = '('; b[']'] = '['; b['}'] = '{'; int n; cin>>n; while(n--) { stack<char> sk; string s; cin>>s; bool flag = true; for(auto c : s) { if(a[c]) {//左括号 if(sk.empty()) sk.push(c); else { if(a[c] <= a[sk.top()]) sk.push(c); else { flag = false; break; }; } } else {//右括号 if(!sk.empty() && sk.top() == b[c]) sk.pop(); else { flag = false; break; }; } } if(sk.empty() && flag) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
- 1
信息
- ID
- 833
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 26
- 已通过
- 10
- 上传者