括号配对问题 UESTC

来源:互联网 发布:小熊加湿器哪款好 知乎 编辑:程序博客网 时间:2024/06/06 01:32

括号配对问题 UESTC - 649


Problem

大家都知道算术表达式中,括号必须配对,现在任意给出一个算术表达式,判断其括号是否配对。如果配对,输出Yes,否则输出No。

Input

含多组测试数据,输入首先是一个整数TT表示测试数据组数(0

Output

对应每组测试数据,输出一行结果。

Sample Input

2
32*(78-23)+78
32*78)-(23+78)

Sample Output

Yes
No

ps:

代码如下:

#include<iostream>  #include<cstdio>  #include<cstring>  #include<algorithm> #include<string.h> using namespace std; int i,j;int k[1010];int l[1010];char str[1010][1010];int main() {    int t;    scanf("%d", &t);    for(int i = 0; i < t; i++) scanf("%s",&str[i]);    for(int i = 0; i < t; i++) {        k[i] = 0;        l[i] = 0;        int len = strlen(str[i]);        for(int j = 0; j < len; j++) {            if(k[i] == 0 && str[i][j] == ')') l[i] = 1; //第一个是否是 右括号             if(str[i][j] == '(') k[i]++;            if(str[i][j] == ')') k[i]--;        }    }    for(int i = 0; i < t; i++) {        if(k[i] == 0 && l[i] == 0) printf("Yes\n");        else printf("No\n");    }    return 0;}
原创粉丝点击