Uva - 673 - Parentheses Balance

来源:互联网 发布:linux dns如何配置文件 编辑:程序博客网 时间:2024/05/22 06:10


用栈就搞定了,忘了刚开始会出现 )) ,]] 这种情况,没有加栈非空的条件,结果RE了好几次,智商太拙计。

AC代码:

#include <iostream>#include <cstdio>#include <cstdlib>#include <cctype>#include <cstring>#include <string>#include <sstream>#include <vector>#include <set>#include <map>#include <algorithm>#include <stack>#include <queue>#include <bitset> #include <cassert> #include <cmath>using namespace std;const int maxn = 256;int main(){int n;scanf("%d", &n);getchar();while (n--) {char str[maxn];fgets(str, sizeof(str), stdin);bool flag = true;stack<char> stc;for (int i = 0; str[i] != '\0'; i++) {switch (str[i]){case '(':stc.push(str[i]);break;case '[':stc.push(str[i]);break;case ')':// 刚开始忘了加!stc.empty(),RE了好几次,太伤心了if (!stc.empty() && stc.top() == '(') {stc.pop();}else {flag = false;}break;case ']':if (!stc.empty() && stc.top() == '[') {stc.pop();}else {flag = false;}break;}if (!flag) {break;}}if (flag && stc.empty()) {printf("Yes\n");}else {printf("No\n");}}return 0;}




0 0
原创粉丝点击