P1739 表达式括号匹配发表时间:2022-10-28 23:12 P1739 表达式括号匹配 题目描述假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。 输入格式一行:表达式 输出格式一行:“YES” 或“NO” 输入输出样例输入 #1复制 2*(x+y)/(1-x)@ 输出 #1复制 YES 输入 #2复制 (25+x)*(a*(a+b+b)@ 输出 #2复制 NO 说明/提示表达式长度小于255,左圆括号少于20个 #include <bits/stdc++.h> using namespace std; char a; int top; bool f; int main(){ f=0;top=0; while(a!='@'){ a=getchar(); if(a=='(') top++; if(a==')'&&top>0) top--; else if(a==')')f=1; } if(f||top!=0) printf("NO\n"); else printf("YES\n"); }
文章分类:
算法例题
|