首页 > 其他 > 详细

leetcode-计算逆波兰表示法的值

时间:2014-07-29 12:29:36      阅读:364      评论:0      收藏:0      [点我收藏+]
package edu.bupt.cici.leetcode;

import java.util.ArrayList;

public class EvaluateReversePolishNotation {

public int evalRPN(String[] tokens) {
int temp = 0;
int length = tokens.length;
ArrayList<Integer> stack = new ArrayList<Integer>();

for (int i = 0; i < length; i++) {
if (!tokens[i].matches("^[\\+\\-*/]$")) {
temp = Integer.parseInt(tokens[i]);
stack.add(Integer.parseInt(tokens[i]));
} else {
switch (tokens[i]) {
case "+":
temp = stack.get(stack.size() - 2)
+ stack.get(stack.size() - 1);
break;
case "-":
temp = stack.get(stack.size() - 2)
- stack.get(stack.size() - 1);
break;
case "*":
temp = stack.get(stack.size() - 2)
* stack.get(stack.size() - 1);
break;
case "/":
temp = stack.get(stack.size() - 2)
/ stack.get(stack.size() - 1);
break;

default:
break;
}
stack.remove(stack.size() - 1);
stack.remove(stack.size() - 1);
stack.add(temp);
}
}

return temp;

}

public static void main(String[] args) {
// TODO Auto-generated method stub
String[] ipt = { "-3","9","*" };
EvaluateReversePolishNotation eRPN = new EvaluateReversePolishNotation();
int opt = eRPN.evalRPN(ipt);
System.out.println(opt);

}

}

 

leetcode-计算逆波兰表示法的值,布布扣,bubuko.com

leetcode-计算逆波兰表示法的值

原文:http://www.cnblogs.com/bekitty/p/3874758.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!