zoukankan      html  css  js  c++  java
  • 227.Basic Calculator II

         /*
          * 227.Basic Calculator II
          * 2016-6-13 by Mingyang
          * 这个题目跟I不同的地方就在于,这里是需要stack的,这里是先遇到符号,把sign等于刚才遇到的符号
          * 然后再继续加减,就是无论正负都先存入stack再说--微软onsite的题目
          */
            public int calculate1(String s) {
                int len;
                if(s==null || (len = s.length())==0) return 0;
                Stack<Integer> stack = new Stack<Integer>();
                int num = 0;
                char sign = '+';
                for(int i=0;i<len;i++){
                    if(Character.isDigit(s.charAt(i))){
                        num = num*10+s.charAt(i)-'0';
                    }
                    if((!Character.isDigit(s.charAt(i)) &&' '!=s.charAt(i)) || i==len-1){
                        if(sign=='-'){
                            stack.push(-num);
                        }
                        if(sign=='+'){
                            stack.push(num);
                        }
                        if(sign=='*'){
                            stack.push(stack.pop()*num);
                        }
                        if(sign=='/'){
                            stack.push(stack.pop()/num);
                        }
                        sign = s.charAt(i);
                        num = 0;
                    }
                }
                int re = 0;
                for(int i:stack){
                    re += i;
                }
             return re; 
            }
  • 相关阅读:
    Mybatis配置文件
    maven添加镜像与常用配置
    互联网级微服务架构神器Duubo
    Mybatis入门
    SpringMVC文件下载与JSON格式
    SpringMVC拦截器与异常处理
    SpringMVC国际化与文件上传
    cinder
    horizon
    glance
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5582885.html
Copyright © 2011-2022 走看看