• 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     }
  • 相关阅读:
    SQLPrompt 最新下载和使用方式
    ThinkPHP模板引擎
    Ajax随笔
    php生成mysql数据库dateTime类型时间
    json变量声明
    MYSQLI:mysqli预处理语句
    php网页乱码问题
    详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()
    PHP给图片添加水印
    php中var关键字用法
  • 原文地址:https://www.cnblogs.com/skillking/p/9923782.html
Copyright © 2020-2023  润新知