码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 673 Parentheses Balance

时间:2015-10-15 14:15:14      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:

 

题意:

  匹配括号,看是否所有括号都匹配。

分析:

  空行的时候要输出yes,其它的用栈正常做就行。

代码:

  

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <stack>
using namespace std;
bool judge(char a,char b)
{
if(a==‘[‘&&b==‘]‘)return 1;
if(a==‘(‘&&b==‘)‘)return 1;
return 0;
}
bool left(char a)
{
if(a==‘[‘||a==‘(‘)return 1;
return 0;
}
int main()
{
int cas;
char s[200];
scanf("%d",&cas);
getchar();
while(cas--)
{
stack<char>q;
gets(s);//cout<<strlen(s);
if(strcmp(s,"\n")==0)
{
cout<<"YES"<<endl;
continue;
}
int i,j,k;
for(i=0;s[i];i++)
{
if(q.empty())
{
q.push(s[i]);
}
else if(!judge(q.top(),s[i]))
{
if(left(s[i]))
q.push(s[i]);
}
else q.pop();
}
if(q.empty())
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
}

UVA 673 Parentheses Balance

标签:

原文地址:http://www.cnblogs.com/137033036-wjl/p/4882069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!