文章

19

粉丝

225

获赞

20

访问

53.3k

头像
C-栈
P1501 西北工业大学2015机试题
发布于2023年3月22日 12:23
阅读数 2.3k

 定义个字符数组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;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发