/*
* Evaluate Reverse Polish Notation
* */
public int evalRPN(String[] tokens)
{
int result = 0;
Stack<Integer> mStack = new Stack<>();
for(String mString:tokens)
{
//mind the sequence of op1 and op2
if(mString.equals("+"))
{
Integer op1 = mStack.pop();
Integer op2 = mStack.pop();
Integer op3 = op2+op1;
mStack.push(op3);
}
else if(mString.equals("-"))
{
Integer op1 = mStack.pop();
Integer op2 = mStack.pop();
Integer op3 = op2-op1;
mStack.push(op3);
}
else if(mString.equals("*"))
{
Integer op1 = mStack.pop();
Integer op2 = mStack.pop();
Integer op3 = op2*op1;
mStack.push(op3);
}
else if(mString.equals("/"))
{
Integer op1 = mStack.pop();
Integer op2 = mStack.pop();
Integer op3 = op2/op1;
mStack.push(op3);
}
else
{
mStack.push(Integer.parseInt(mString));
}
}
return mStack.pop().intValue();
}
总结延伸:逆波兰式计算 、一些容器的使用
leetcode_Evaluate Reverse Polish Notation
最新推荐文章于 2020-03-04 16:52:16 发布