题目信息
要求给一个字符串数组,是后缀表达式,需要你转换成中缀表达式计算。
解题思路
将tokens数组放到一个树中,根据后序遍历利用一个栈来完成计算。
实现代码
class Solution {
public int evalRPN(String[] tokens) {
Stack<Integer> s=new Stack<> ();
for (int i = 0 ; i <tokens.length ; i++) {
String s1=tokens[i];
if(s1.equals ("+") ||s1.equals ("-")|| s1.equals ("*")||s1.equals ("/")){
int b=s.pop ();
int a=s.pop ();
if(s1.equals ("+")){
a+=b;
}else if(s1.equals ("-")){
a-=b;
}else if(s1.equals ("*")){
a*=b;
}else {
a/=b;
}
s.push (a);
}else {
s.push (Integer.parseInt (s1));
}
}
return s.pop ();
}
}