uva 673 Parentheses Balance

水题照题意模拟即可

 

#include <stdio.h>
#include <string.h>
#define MAX 130
char s[MAX];

int main()
{
    int i,n,top,len;  char temp[MAX],ch;  
    scanf("%d",&n); getchar();
    while(n--)
    {
        gets(temp); len=strlen(temp); if(len==0)  { printf("Yes\n"); continue; }
        for(top=0,i=0; i<len; i++)
        {
            if(temp[i]!='(' && temp[i]!=')' && temp[i]!='[' && temp[i]!=']') continue;
            s[top]=temp[i]; if(top==0)  {top++; continue;}
            if( (s[top-1]=='(' && s[top]==')' ) || (s[top-1]=='[' && s[top]==']') ) top--;
            else top++;
        }
        if(top<=0) printf("Yes\n");  else printf("No\n");
    }
    return 0;
}
posted @ 2012-10-05 22:31  Titanium  阅读(185)  评论(0编辑  收藏  举报