题解 | #逆波兰表达式求值#
逆波兰表达式求值
https://www.nowcoder.com/practice/885c1db3e39040cbae5cdf59fb0e9382
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param tokens string字符串一维数组
* @return int整型
*/
public int evalRPN (String[] tokens) {
// write code here
Stack<Integer> st = new Stack<>();
for(int i = 0;i < tokens.length;i++){
if(tokens[i].equals("+")){
int second = st.pop();
int first = st.pop();
st.push(first + second);
}else if(tokens[i].equals("-")){
int second = st.pop();
int first = st.pop();
st.push(first - second);
}else if(tokens[i].equals("*")){
int second = st.pop();
int first = st.pop();
st.push(first * second);
}else if(tokens[i].equals("/")){
int second = st.pop();
int first = st.pop();
st.push(first / second);
}else{
st.push(Integer.parseInt(tokens[i]));
}
}
return st.pop();
}
}
