面试题——读取后缀表达式并计算

来源:互联网 发布:人工智能汽车 编辑:程序博客网 时间:2024/06/05 15:43
System.out.println(cal(new String[]{"1","2","+","3","*", "2","/", "3","-"}));System.out.println(cal(new String[]{"1"}));

public int cal(String[] content) {    List<Integer> numbers = new ArrayList<>();    int firstNum;    int secondNum;    int numberSize = 0;    for (String current : content) {        numberSize = numbers.size();        if ("+".equals(current)) {            firstNum = numbers.get(numberSize - 2);            secondNum = numbers.get(numberSize - 1);            numbers.remove(numberSize - 1);            int middle = firstNum + secondNum;            numbers.add(middle);            numberSize = numbers.size();        } else if ("-".equals(current)) {            firstNum = numbers.get(numberSize - 2);            secondNum = numbers.get(numberSize - 1);            numbers.remove(numberSize - 1);            int middle = firstNum - secondNum;            numbers.add(middle);            numberSize = numbers.size();        } else if ("*".equals(current)) {            firstNum = numbers.get(numberSize - 2);            secondNum = numbers.get(numberSize - 1);            numbers.remove(numberSize - 1);            int middle = firstNum * secondNum;            numbers.add(middle);            numberSize = numbers.size();        } else if ("/".equals(current)) {            firstNum = numbers.get(numberSize - 2);            secondNum = numbers.get(numberSize - 1);            numbers.remove(numberSize - 1);            int middle = firstNum / secondNum;            numbers.add(middle);            numberSize = numbers.size();        } else {            numbers.add(Integer.valueOf(current));            numberSize = numbers.size();        }    }    return numbers.get(numberSize - 1);}
阅读全文
0 0
原创粉丝点击