您的位置:首页 > 编程语言 > Lua

leetcode:Evaluate Reverse Polish Notation

2014-06-13 16:37 309 查看
使用栈进行四则运算,对于每一个元素,如果是数字,直接入栈,如果是运算符,那么弹出栈顶的两个元素,然后进行

四则运行,之后将结果压入栈内,最后返回栈顶的元素

import java.util.*;
public class Solution {
public int evalRPN(String[] tokens) {
int ans = 0;
ArrayList<Integer> stack = new ArrayList<>();
for(int i = 0; i < tokens.length; ++i){
if((tokens[i].charAt(0) >= '0' && tokens[i].charAt(0) <= '9') || tokens[i].length() > 1){
stack.add(Integer.valueOf(tokens[i]));
}
else{
int site = stack.size();
int a1 = stack.get(site - 2);
int a2 = stack.get(site - 1);
stack.remove(site - 1);
stack.remove(site - 2);
switch(tokens[i]){
case "+":
stack.add(a1 + a2);
break;
case "-":
stack.add(a1 - a2);
break;
case "*":
stack.add(a1 * a2);
break;
default:
stack.add(a1 / a2);;
}
}
}
return stack.get(0);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: