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

    1,放在堆里面做,碰到符号类就pop 两个数
    2,记得输入可能有负数的情况,
    tokens[i].matches("-?\d+")
    3,string 不能用== 必须采用equal


    public class Solution {
        public int evalRPN(String[] tokens) {
            Stack<Integer> store=new Stack<Integer>();
            int sum=0;
            for(int i=0;i<tokens.length;i++){
            	if(!tokens[i].matches("-?\d+")){
            		int a=store.pop();
            		int b=store.pop();
              		if(tokens[i].equals("+")){
            			sum=b+a;
            		}
            		else if(tokens[i].equals("-")){
            			sum=b-a;
            		}
            		else if(tokens[i].equals("*")){
            			sum=b*a;
            		}
            		else if(tokens[i].equals("/")){
            			sum=b/a;
            		}
            		store.push(sum);
            	}
            	else{
            		store.push(Integer.parseInt(tokens[i]));
            	}
            }
            return store.pop();
        }
    }
    

      

  • 相关阅读:
    Spring(3)
    Spring(2)
    Spring(1)
    2016年给自己的一个清单计划
    今天早上是我第一次发博客,请大家多多关照
    QTP知识积累
    [转]基于实际测试的功能测试点总结
    Django之模板
    Django之视图
    HTML
  • 原文地址:https://www.cnblogs.com/lilyfindjobs/p/4098790.html
Copyright © 2011-2022 走看看