题目描述
先给 个变量的取值,再给一个表达式,求表达式的值。
- 变量名是只含小写字母的串(长度 到 ),值是整数(可为负,绝对值不超过 );
- 表达式由变量和非负整数常量(不超过 )用
+、-连接而成:无空格、无括号,第一个记号前面没有符号,之后每个记号前面恰好一个+或-,至少含一个记号;表达式里出现的变量都已在变量表中。
把变量表装进 map<string, long long>,然后手写扫描:一个记号一个记号地读——字母开头就攒变量名去表里查值,数字开头就攒数字;每个记号的正负由它前面的 +/- 决定(第一个记号默认为正)。
输入格式
第一行一个整数 ()。
接下来 行,每行一个变量名和一个整数()。
最后一行一个字符串:表达式(长度 到 )。
输出格式
一行一个整数:表达式的值。数据保证计算过程中任何中间结果与最终结果的绝对值都在 long long 表示范围内。
样例
输入:
2
x 2
y -3
x+5-y
输出:
10
是减去 ,等于加 :——符号跟着记号走,变量值本身的正负另算。
数据范围
,,表达式长度 。提示:- 后面不管是常量还是变量,都是减去它——把 -5 里的 当正数加上去,答案立刻不对。