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;
                        
            }
           }
        
    }

  • 相关阅读:
    前端综合练习与bootstrap
    05-前端之jQuery
    03-初识JavaScript
    02-初识CSS
    01-前端初识和body标签中的相关标签
    程序员笔记
    windows和Ubantu双系统安装图解
    获取http和ftp地址的图片
    HttpHelper类及调用
    简单的SqlHelper
  • 原文地址:https://www.cnblogs.com/wanglingdeboke/p/9471315.html
Copyright © 2011-2022 走看看