zoukankan      html  css  js  c++  java
  • [Leetcode] Evaluate Reverse Polish Notation

    Evaluate the value of an arithmetic expression in Reverse Polish Notation.

    Valid operators are +-*/. Each operand may be an integer or another expression.

    Some examples:

      ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
      ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6

    Solution:

    public class Solution {
        public int evalRPN(String[] tokens) {
            if(tokens==null)
                return 0;
            Stack<Integer> s=new Stack<Integer>();
            for(int i=0;i<tokens.length;++i){
                if(isNumber(tokens[i])){
                    s.add(Integer.parseInt(tokens[i]));
                }else{
                    int param_1=s.pop();
                    int param_2=s.pop();
                    s.add(calc(param_1,param_2,tokens[i]));
                }
            }
            return s.pop();
        }
        private int calc(int param_1, int param_2, String op) {
            // TODO Auto-generated method stub
            switch (op.charAt(0)) {
            case '+':
                return param_1+param_2;
            case '-':
                return param_2-param_1;
            case '*':
                return param_1*param_2;
            case '/':
                return param_2/param_1;
            default:
                return 0;
            }
        }
        private boolean isNumber(String s) {
            // TODO Auto-generated method stub
            try {
                int i_s=Integer.parseInt(s);
            } catch (Exception e) {
                // TODO: handle exception
                return false;
            }
            return true;
        }
    }

    需要注意:

    判断是不是数字:

     1 private boolean isNumber(String s) {
     2         // TODO Auto-generated method stub
     3         try {
     4             int i_s=Integer.parseInt(s);
     5         } catch (Exception e) {
     6             // TODO: handle exception
     7             return false;
     8         }
     9         return true;
    10 }
  • 相关阅读:
    django regroup的相关知识点
    python学习
    python os的一点心得
    python字符串替换的2种有效方法
    python的缩进格式真的不好吗?
    django的哲学很耐人回味
    python 抓取网页的方法
    分享一点python 编码设置的知识
    python apply的一点知识
    今天休息真舒服
  • 原文地址:https://www.cnblogs.com/Phoebe815/p/4064877.html
Copyright © 2011-2022 走看看