老师,关于leetcode150逆波兰表达式的问题
来源:6-1 栈的基础应用 Valid Parentheses
相信光变成光
2019-11-10
我在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;
}
写回答
1回答
-
liuyubobobo
2019-11-10
所有的 == 都应该改成 .equals
String 的相等比较需要使用 .equals,因为是 Object
继续加油!:)
122019-11-11
相似问题
逆波兰问题
回答 1