class Solution {
public int evalRPN(String[] tokens) {
Stack<Integer> st=new Stack<>();
for(String i:tokens){
if("+".equals(i)){
st.push(st.pop()+st.pop());
}
else if("-".equals(i)){
int two=st.pop();
int one=st.pop();
st.push(one-two);
}
else if("*".equals(i)){
st.push(st.pop()*st.pop());
}
else if("/".equals(i)){
int two=st.pop();
int one=st.pop();
st.push(one/two);
}
else{
st.push(Integer.valueOf(i));
}
}
return st.pop();
}
}
class Solution(object):
def evalRPN(self, tokens):
st=list()
for i in tokens:
if "+"==i:
st.append(st.pop()+st.pop())
elif "-"==i:
two=st.pop()
one=st.pop()
st.append(one-two)
elif "*"==i:
st.append(st.pop()*st.pop())
elif "/"==i:
two=st.pop()
one=st.pop()
st.append(int(one/float(two)))#Python一般是向下取整而不是向0取整,需要进行替换
else:
st.append(int(i))
return st.pop()