- A+
在上一篇中,我们利用一个字符栈可以将中缀表达式转换为后缀表达式,再利用数字栈计算后缀表达式。因此,我们可以在此基础上,使用另一种方法计算字符串表达式。
首先,我们创建两个栈,一个字符栈(存储操作符),一个数字栈(存储数字)。在循环获取字符的过程中,需遵从以下规则:
①如果元素为数字,则直接将数字存入数字栈中;
②如果为左括号,则将左括号存入字符栈中;
③如果为右括号,则字符栈出栈,并在出栈的过程中,从数字栈取数字进行运算,并将结果入数字栈,直至字符栈栈顶为左括号为至;
④如果为运算符,则判断字符与字符串栈栈顶优先级,如小于,则字符栈出栈并运算数字栈,反之,则直接入栈。
最后,判断字符栈是否为空,如为空,则出栈,并在出栈过程中运算数字栈,数字栈栈顶即为运算结果。