输入 ( ) { } [ ]等三种括号,若对称输出yes,否则输出no;且左括号不能出现在右括号之前;
例
(){} [] 为 yes
{ ( [ ] ) } 为 yes
}{}()] 为 no
#include<stdio.h>
#include<string.h>
const int maxsize=100;
int main(void)
{
char str[maxsize];
char stack[maxsize];
int judge=1,i=0;
int top=-1;
scanf("%s",str);
while(i<strlen(str)&&judge==1)
{
if(str[i]=='('||str[i]=='{'||str[i]=='[')
{
top++;
stack[top]=str[i];
}
if(str[i]==')')
{
if(stack[top]=='(') top--;
else judge=0;
}
if(str[i]==']')
{
if(stack[top]=='[') top--;
else judge=0;
}
if(str[i]=='}')
{
if(stack[top]=='{') top--;
else judge=0;
}
}
if(judge==1&&top==-1)
printf("yes");
else
printf("no");
return 0;
}