您的位置:首页 > 其它

南阳理工2 括号配对问题

2014-08-07 16:33 253 查看
http://acm.nyist.net/JudgeOnline/problem.php?pid=2

#include <stdio.h>
#include <string.h>

#define MAXN 10000
char astack[MAXN+2];

int main () {
int N;
scanf ("%d" , &N);
getchar();
while (N--) {
memset (astack , 0 , sizeof (astack));
char chr;
int i;
astack[1] = getchar();
for (i = 1; (chr = getchar()) != '\n';) {
if ((astack[i] == '(' && chr == ')') || (astack[i] == '[' && chr == ']')) {astack[i] = 0; i--;}
else {i++; astack[i] = chr;}
//此处不能用break提前跳出循环,会出现意想不到的错误
}
if (astack[1] == 0) printf ("Yes\n");
else printf ("No\n");
}

return 0;
}

用数组模拟栈,题目要求有最大空间,干脆直接用数组开辟好最大空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: