B : 括号序列
考察点 : 栈 坑点 : 只有栈空时才是合法的
Code:
#include <stack> #include <cstdio> #include <string> #include <cstring> #include <iostream> #include <algorithm> using namespace std; string str; stack<char>stacks; int main(void) { cin >> str; bool flag = true; for(int i = 0; i < str.length(); i ++) { if(stacks.size() == 0) { stacks.push(str[i]); continue; } if(str[i] == '(' || str[i] == '{' || str[i] == '[') { stacks.push(str[i]); } else if(str[i] == ')' && stacks.top() == '(' && stacks.size() != 0) { stacks.pop(); } else if(str[i] == '}' && stacks.top() == '{' && stacks.size() != 0) { stacks.pop(); } else if(str[i] == ']' && stacks.top() == '[' && stacks.size() != 0) { stacks.pop(); } else { flag = false; break; } } if(flag && stacks.size() == 0) cout << "Yes" << endl; else cout << "No" << endl; return 0; }
来源:https://www.cnblogs.com/prjruckyone/p/12302417.html