描述
栈在计算机科学领域有着广泛的应用。比如在编译和运行计算机程序的过程中,就需要用栈进行语法检查,如检查begin和end、{和}、(和)等是否匹配。
假设一个表达式只由小写英文字母、运算符(+,-,*,/)和左、右小括号构成,以“@”作为表达式的结束符。
请编程检查表达式中的左、右小括号是否匹配,若匹配,则返回“YES”;否则返回“NO”,不必关心表达式中的其他错误。
本人不使用栈做!!!!!!!!!!!!!!!!!!!!!!!!
输入
一个表达式以“@”作为结束符
输出
YES或者NO
输入样例 1
()((()()()())(()@
输出样例 1
NO
#include<bits/stdc++.h> using namespace std; char c; int a=0; int main() { while(cin>>c){ if(a==-1) break; if(c=='@'){ break; } else{ if(c=='('){ a++; } if(c==')'){ a--; } } } if(a==0){ cout<<"YES"; } else if(a!=0){ cout<<"NO"; } return 0; }