我在eclipse编译器上测试,结果正确。测试数据为[“2”,“1”,"+",“3”,"*"]
在LeetCode用同样的数据测试,结果是0。这是为何?
我的代码如下:
public int evalRPN(String[] tokens) {
Stack<String> stack=new Stack<>();
int lNum; //运算符左边的数
int rNum; //运算符右边的数
int result=0;
for(int i=0;i<tokens.length;i++){
if(tokens[i]=="+"||tokens[i]=="-"||tokens[i]=="*"||tokens[i]=="/"){
rNum=Integer.parseInt(stack.pop());
lNum=Integer.parseInt(stack.pop());
if(tokens[i]=="+"){
result=lNum+rNum;
}else if(tokens[i]=="-"){
result=lNum-rNum;
}else if(tokens[i]=="*"){
result=lNum*rNum;
}else{
result=lNum/rNum;
}
stack.add(String.valueOf(result));
}else{
stack.push(tokens[i]);
}
}
return result;
}