题解 | Problem E
Problem E
https://www.nowcoder.com/practice/3bad4a646b5b47b9b85e3dcb9488a8c3
#include <iostream> #include <stack> #include <string> #include <unordered_map> using namespace std; unordered_map<char,char>search={{')','('},{']','['},{'}','{'}}; int main() { string str; int n; cin>>n; while (cin >> str) { // 注意 while 处理多个 case stack<char> st; bool istrue = true; for(int i=0;i<str.size();i++){ if(str[i]=='('||str[i]=='['||str[i]=='{'){ st.push(str[i]); } if(str[i]==')'||str[i]==']'||str[i]=='}'){ if(st.empty()){ istrue=false; break; } char tmp = st.top(); st.pop(); if(tmp==search[str[i]])continue; else { istrue=false; break; } } } if(!st.empty())istrue=false; if(istrue)puts("yes"); else puts("no"); } } // 64 位输出请用 printf("%lld")