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 }
  • 相关阅读:
    Hive(二)CentOS7.5安装Hive2.3.3
    Hive(一)Hive初识
    CentOS7.5搭建ELK6.2.4集群及插件安装
    开发工具之Spark程序开发详解
    Java多线程编程
    数据迁移之Sqoop
    CentOS7.5之Sqoop1.4.7的安装使用
    Hadoop案例(十一)MapReduce的API使用
    Hadoop案例(十)WordCount
    BSScrollViewEdgePop
  • 原文地址:https://www.cnblogs.com/Phoebe815/p/4064877.html
Copyright © 2011-2022 走看看