1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > SWUST OJ 962: 括号匹配问题(C语言实现)

SWUST OJ 962: 括号匹配问题(C语言实现)

时间:2023-05-14 02:49:12

相关推荐

SWUST OJ 962: 括号匹配问题(C语言实现)

看了网上一些关于这道题的解法,发现许多都写得很繁琐,简单的题当然简单做啦,所以码了一个比较简洁没有任何技术含量的解法~~

大的思路当然是一样的,’(’ 和 ‘[’ 进栈,遇到 ‘)’ 和 ‘]’ 就判断和栈顶元素是否匹配

题目描述

假设表达式中允许包含两种括号:圆括号和方括号。编写一个算法判断表达式中的括号是否正确配对。

输入

由括号构成的字符串,包含”(“、”)“、”[“和”]“。

输出

如果匹配输出YES,否则输出NO。

样例输入

[([][]())]

样例输出

YES

下面上代码~

AC代码

#include<stdio.h>char stack[300],ori[300];//用一个stack数组做栈,用一个ori数组存储所有括号int main(){int top=0,i=0;scanf("%s",ori);while(ori[i]!='\0')//ori数组没有到最后{if(ori[i]=='('||ori[i]=='[')//压栈{top++;stack[top]=ori[i];}//以下是pop部分else if(ori[i]==']'&&stack[top]=='[')top--;else if(ori[i]==')'&&stack[top]=='(')top--;else//是为了应对这种类型的情况:()))))) {printf("NO");return 0;}i++;}if(top)//最后top=0的时候表示可以匹配,输出YES,否则输出NOprintf("NO");elseprintf("YES");return 0;}

传送门

962: 括号匹配问题

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。