#220. 中缀表达式的值

中缀表达式的值

题目描述

输入一个中缀表达式(由数字 0-9、加减乘除运算符 + - * /、左右小括号 ( ) 组成,表达式以 @ 结束),判断表达式是否合法。如果不合法,输出 NO;如果合法,则先将中缀表达式转换为后缀表达式,再通过栈求出后缀表达式的值并输出。

我们建议你用栈操作,而非直接输出原表达式的值,以达到练习效果。

输入格式

一行,一个以 @ 结尾的字符串,表示中缀表达式。

输出格式

如果表达式不合法,输出 NO
如果合法,输出计算结果。

1+2*8-9@
8

数据规模与约定

对于全部的测试点,保证输入字符串长度不超过 250250,运算数均为非负整数,运算过程中及结果在 int 范围内,除法为整除。