AT_past18_f インタプリタをつくろう

题目描述

给定一个表达式 $S$,该表达式由单字母变量、单位数字和加号 $+$、减号 $-$ 组成。 例如,`1+2+3`、`3-a+2+c+0` 和 `1` 是合法的表达式, 但 `12+3`、`4-ab` 和 `a/2+5` 都不合法,因为 $12$ 不是单位数字,$ab$ 不是单字母变量(也不会被解释为 $a\times b$),且表达式中包含 $/$。 你还会得到 $N$ 对变量赋值 $(c_1, v_1), (c_2, v_2), \ldots, (c_N, v_N)$。第 $i$ 对 $(c_i, v_i)$ 表示变量 $c_i$ 的值为 $v_i$。 请计算表达式 $S$ 的结果。

输入格式

输入从标准输入读入,格式如下: > $S$ $N$ $c_1$ $v_1$ $c_2$ $v_2$ $\cdots$ $c_N$ $v_N$

输出格式

输出表达式 $S$ 的计算结果。

说明/提示

### 样例解释 1 当 $a=18$ 时,有 $2+a-7=2+18-7=13$,因此应输出 $13$。 ### 样例解释 2 $S$ 可能不包含变量。同时,输入中也可能给出了 $S$ 中未出现变量的赋值。 ### 数据范围 - $S$ 是一个长度在 $1$ 到 $99$ 之间(含 $1$ 和 $99$)的字符串。 - $S$ 的长度为奇数。 - $S$ 中奇数位的字符是小写英文字母或数字。 - $S$ 中偶数位的字符是 `$+$` 或 `$-$`。 - $1 \leq N \leq 26$ - $c_i$ 是小写英文字母 $ (1\leq i\leq N) $。 - $i\neq j \implies c_i \neq c_j\ (1\leq i,j\leq N)$。 - 若 $S$ 中出现了某个小写字母 $c$,则必然存在 $i(1\leq i\leq N)$ 使得 $c=c_i$。 - $-100 \leq v_i \leq 100\ (1\leq i\leq N)$ - $N$、$v_1,v_2,\ldots,v_N$ 均为整数。 由 ChatGPT 5 翻译