逆波兰表达式

class Solution {
    public int evalRPN(String[] tokens) {
      Stack st = new Stack();
        boolean flag= true;
        int val =0 ;
        for(int i =0;i<tokens.length;i++){
                if("+".equals(tokens[i])){
                    int a = Integer.valueOf(st.pop().toString());
                    int b = Integer.valueOf(st.pop().toString());
                    st.push(b+a);
                }else if("-".equals(tokens[i])){
                    int a = Integer.valueOf(st.pop().toString());
                    int b = Integer.valueOf(st.pop().toString());
                    st.push(b-a);
                }else if("*".equals(tokens[i])){
                    int a = Integer.valueOf(st.pop().toString());
                    int b = Integer.valueOf(st.pop().toString());
                    st.push(b*a);
                }else if("/".equals(tokens[i])){
                    int a = Integer.valueOf(st.pop().toString());
                    int b = Integer.valueOf(st.pop().toString());
                    st.push(b/a);
                }else{
                    st.push(tokens[i]);
                }
        }
        return Integer.valueOf(st.peek().toString());
    }
}

  

posted @ 2023-10-29 20:34  樱圃  阅读(1)  评论(0编辑  收藏  举报