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 翻译