#Y1182. 中缀表达式值(expr)
时间限制1000 ms
内存限制64 MiB
通过率—0 / 0 次提交
中缀表达式值
题目描述
输入可能不合法的中缀算式,以@结束。允许非负整数、括号、+ - * /及一元负号,不允许幂、一元正号或隐式乘法。先转换为后缀序列,再用值栈求值。乘除优先于加减,一元负号更高;二元同级左结合,除法向0截断。
输入
一行ASCII文本,长度≤1001。合法形式必须恰有一个@且它是除尾部空白外的最后字符;@之前算式含空白长度≤1000。字面量0..10^9,每次中间值绝对值≤10^12。
输出
若词法/语法非法、缺结束符、除0或超出声明数值域,输出NO;否则输出精确整数。不额外输出后缀序列,但程序必须先生成后缀并用栈求值。
输入样例
1+2*8-9@
输出样例
8
本地修订说明
明确合法性门槛与NO;保留不含^和必须转后缀栈的要求,不将输入当后缀表达式直接计算。
本地评测数据为独立构造和核验的教学训练数据,非官方原版数据。
本地修订与来源
本题为经授权补全的本地训练修订版,原始公开题面保留在采集档案;修订了:明确合法性门槛与NO;保留不含^和必须转后缀栈的要求,不将输入当后缀表达式直接计算。。此处题意、范围和输出约定以本修订版为准,不冒称原站或官方原版。原题链接:https://ybt.ssoier.cn/problem_show.php?pid=1358。
评测数据说明
本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共10个测试点,非原站或官方原始数据。总分100分。