文章
19
粉丝
225
获赞
20
访问
51.6k
定义个字符数组str用来存输入的字符串,再定义一个栈,刚开始的时候栈为空,直接入栈,当栈中的元素num>0时,判断栈顶括号和下一个即将入栈的括号是否匹配,如果匹配,则出栈,不匹配,则继续入栈。当str中的元素全部遍历完以后,判断栈是否为空,如果为空,则匹配成功,否则匹配失败。
#include<stdio.h>
#include<string.h>
int main(){
char str[100];
char stack[100];
scanf("%s",str);
int len=strlen(str);
int num=0;
int top=-1;
for(int i=0;i<len;i++){
if(num>0){
char now=stack[top];
if((now=='('&&str[i]==')')||(now=='['&&str[i]==']')){
top--;
num--;
}else{
stack[++top]=str[i];
num++;
}
}else{
stack[++top]=str[i];
num++;
}
}
if(num==0)
printf("YES");
else
printf("NO");
return 0;
}
登录后发布评论
暂无评论,来抢沙发