zoukankan      html  css  js  c++  java
  • 224. Basic Calculator

        /*
         * 224. Basic Calculator
         * 12.10 by Mingyang
         * 先把所有的该计算的都计算了,遇到符号就sign赋值,遇到数字就直接取结果
         * 最关键的是遇到括号以后,左边括号就把result和sign分别存stack里面,然后继续归零
         * 遇到右括号就把result和stack分别计算,最后return result
         * 注意:所有括号前面都有一个符号,所以都要重新赋值
         */
        public static int calculate(String s) {
            int len = s.length(), sign = 1, result = 0;
            Stack<Integer> stack = new Stack<Integer>();
            for (int i = 0; i < len; i++) {
                if (Character.isDigit(s.charAt(i))) {
                    int sum = s.charAt(i) - '0';
                    while (i + 1 < len && Character.isDigit(s.charAt(i + 1))) {
                        sum = sum * 10 + s.charAt(i + 1) - '0';
                        i++;
                    }
                    result += sum * sign;
                } else if (s.charAt(i) == '+')
                    sign = 1;
                else if (s.charAt(i) == '-')
                    sign = -1;
                else if (s.charAt(i) == '(') {
                    stack.push(result);
                    stack.push(sign);
                    result = 0;
                    sign = 1;
                } else if (s.charAt(i) == ')') {
                    result = result * stack.pop() + stack.pop();
                }
    
            }
            return result;
        }
  • 相关阅读:
    springboot对JPA的支持
    springboot整合redis
    spring boot整合mybatis
    mybatis与spring集成
    mybatis动态sql和分页
    mybatis入门
    使用java代码操作redis
    Redis安装和基本操作
    idea安装及使用
    爬虫
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5580201.html
Copyright © 2011-2022 走看看