zoukankan      html  css  js  c++  java
  • 利用栈进行运算

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

    题意为 参数 a,b 运算符,对其运算,正好利用栈的性质,没读到操作符的时候,入栈,匹配到操作符,就弹出参数,进行运算,运算完再入栈,最后返回栈顶元素。

    public class Solution {
        public int evalRPN(String[] tokens) {
            Stack<Integer> s = new Stack<Integer>();//栈
            for(int i=0;i<tokens.length;i++){
                if(tokens[i].equals("+")||tokens[i].equals("-")||tokens[i].equals("*")||tokens[i].equals("/")){
                 int y=s.pop();
                 int x=s.pop();
                    s.push(Calculate(tokens[i],x,y));
                    
                }
                else{
                    s.push(Integer.parseInt(tokens[i]));//把不是运算符的存储在栈里面
                }
               
            }
            return s.pop();
        }
        public int Calculate(String str,int a,int b){
            switch(str){
                    case"+":
                        return a+b;
                    case"-":
                        return a-b;
                    case"*":
                        return a*b;
                    case"/":
                        return a/b;
                    default:
                        return 0;
                        
            }
           }
        
    }

  • 相关阅读:
    Datasnap http用户验证
    Delphi 接口机制真相
    tfmxobject的序列化
    delphi md5算法
    delphi xe 窗体子控件实现窗体拖动
    Delphi笔记-自定义组件
    DELPHI RES资源文件使用方法
    Delphi中WebBrowser的使用技巧汇总
    Delphi XE调用第三方库Jni详细过程
    使用VLC进行屏幕广播
  • 原文地址:https://www.cnblogs.com/wanglingdeboke/p/9471315.html
Copyright © 2011-2022 走看看