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

LeetCode OJ --问题与解答 Evaluate Reverse Polish Notation

2014-02-16 20:00 453 查看
题目

Evaluate the value of an arithmetic expression in Reverse Polish Notation.

Valid operators are 
+
-
*
/
.
Each operand may be an integer or another expression.

按照规则计算字符串

代码

public class Solution {
public int evalRPN(String[] tokens) {
if(tokens.length==0){
return 0;
}
Stack<Integer> record = new Stack<Integer>();
for(int i=0;i<tokens.length;i++){
String s = tokens[i];
if(s.equals("+")){
int temp=record.pop()+record.pop();
record.push(temp);
}
else if(s.equals("-")){
int temp=0-record.pop()+record.pop();
record.push(temp);
}
else if(s.equals("*")){
int temp=record.pop()*record.pop();
record.push(temp);
}
else if(s.equals("/")){
int temp1=record.pop();
int temp2 = record.pop();

record.push(temp2/temp1);
}
else {
record.push(Integer.parseInt(s));
}

}
return record.peek();
}
}

思考

1 让我很失望,我居然一遍就通过了。我只是把题目的意思按照逻辑写了出来,没有考虑出错的情况。

2 如果参加面试,起码会想到如下:

a 如果输入不合法怎么办?

b 如果除数为0怎么办?

c 如果加法,乘法,减法溢出怎么办?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 面试笔试