题意:给一个表达式(一行一个), 字母(每个字母出现一次)对应变量(变量初值a = 1, b =2 ...z = 26)。 计算表达式的值, 及各个变量的值。
思路: 刘汝佳说 这属于树的题目。 其实, 直接模拟就行了。 我的思路是, 用一个栈保存符号, 一个变量 表示目前的计算变量。 遇到符号压栈, 遇到变量时: 1.若栈中只有一个符号, 则跟总数count做运行, 符号出栈。
2. 若有两个符号, 并且符号相同(前缀表达式), 则目前计算变量 前 缀运算(注:这种情况只会是一开始就是前缀的情况出现), 如果是 不同的符号则不理会。
3.栈中有三个符号(肯定是+--, 或者-++), 直接计算前缀 然后与 count进行运算。
这种做法是边输边运算。
代码: 非常搓, 先欠着。