SSOJ2457表达式括号匹配
3154+
作者:crxis 发布:2017-07-02 分类:栈
题目大意:判断一个由英文字母(小写)、运算符(+、-、*、/)和左右小(圆)括号构成的算数表达式中的括号是否匹配、是否合法。
题目描述
假设一个表达式由英文字母(小写)、运算符(+、-、*、/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。
输入
输入一行,即是表达式。
输出
输出“YES”或者输出“NO”。
样例输入
2*(x+y)/(1-x)@
样例输出
YES
解题思路
若能匹配,左右括号数量一样;若出现右括号,则前面必有左括号。用一个变量记录左括号的数量,遇到右括号如果没有左括号则匹配不成功,否则左括号数量-1。