要求
用反向波形符号评估算术表达式的值。有效运算符是+, - ,*,/。每个操作数可以是整数或另一个表达式。例如:
[“2”,“1”,“+”,“3”,“ * ” ] - >((2 + 1)* 3) - > 9
[“4”,“13”,“5”,“/”,“+”] - >(4 +(13 / 5)) - > 6
思路
这个问题可以通过使用堆栈来解决。我们可以循环遍历给定数组中的每个元素。当它是一个数字,把它推到堆栈。当它是一个操作符时,从堆栈中弹出两个数字,进行计算,并推回结果。
方法一
package com.algorithm.string_array_matrix;
import java.io.IOException;
import java.util.Stack;
/**
* Created by cgt on 2017/5/25.
*/
public class Test {
public static void main(String[] args) throws IOException {
String[] tokens =