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

    一、题目

      1、审题

      

      2、分析

        给出包含 +、-、*、/ 以及空格、数字的正确的数学计算式,求出其正确答案。

    二、解答

      1、思路

        新建一个栈,存放所有的带符号的数值,其中 出现 +、- 号时作为下一个数值的符号;

        当出现 * / 号时,从栈中出栈一个数值与下一个数值进行运算后入栈。

        最终将栈中所有数值进行求和运算。

     1     public int calculate11(String s) { 
     2         
     3         int len;
     4         if(s == null || (len = s.length()) == 0)
     5             return 0;
     6         
     7         Stack<Integer> stack = new Stack<>();
     8         int num = 0;
     9         char sign = '+';
    10         for (int i = 0; i < len; i++) {
    11             char ch = s.charAt(i);
    12             if(Character.isDigit(ch)) {
    13                 num = num * 10 + ch - '0';
    14             }
    15             
    16             if((!Character.isDigit(ch) && ch != ' ') || i == len - 1) {
    17                 if(sign == '-')
    18                     stack.push(-num);
    19                 else if(sign == '+')
    20                     stack.push(num);
    21                 else if(sign == '*')
    22                     stack.push(stack.pop() * num);
    23                 else if(sign == '/')
    24                     stack.push(stack.pop() / num);
    25 
    26                 sign = s.charAt(i);
    27                 num = 0;
    28             }
    29         }
    30         
    31         int re = 0;
    32         for(int i: stack)
    33             re += i;
    34         return re;
    35     }
  • 相关阅读:
    js对象
    实习经历日志02
    前端实习经历日志01
    js变量提升
    WebApls-元素(offset, client, scroll)
    WebApls-Bom
    WebApls-DOM的核心总结
    WebApls-节点01
    javascript-
    Javascript-字符串对象
  • 原文地址:https://www.cnblogs.com/skillking/p/9923782.html
Copyright © 2011-2022 走看看