还没有Pascal的代码?

那就来一篇吧

首先,我们自然而然联想到表达式求值的一道题,只要将元素符号转化为数字,再在分子式内加上加号和乘号就可以了。当然,这样做肯定费时费力,所以我们将那道题目的栈结构改变一下。

几个元素符号看着很不顺眼,所以我们将他们转化成值,即首位和末位按权展开:

读入部分很简单

然后,正文部分如何展开呢?

我们有如下步骤:

第一步,如果遇到左括号,直接进栈,等级

第二步,如果遇到大写字母,向后寻找还有没有小写字母和数字,并得到这些东西。

第三步,如果遇到右括号,向后寻找还有没有数字,并得到这些东西。

然后出栈。

值得注意的是,如果得不到数字,则

完整程序