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

    Implement a basic calculator to evaluate a simple expression string.

    The expression string contains only non-negative integers, +-*/ operators and empty spaces . The integer division should truncate toward zero.

    Example 1:

    Input: "3+2*2"
    Output: 7
    

    Example 2:

    Input: " 3/2 "
    Output: 1

    Example 3:

    Input: " 3+5 / 2 "
    Output: 5

    class Solution {
        public int calculate(String s) {
            char[] charArr = s.toCharArray();
            LinkedList<Integer> stack = new LinkedList<>();
            char sign = '+';
            int num = 0;
            for (int i = 0; i < charArr.length; i++) {
                char cur = charArr[i];
                if (Character.isDigit(cur)) {
                    num = cur - '0';
                    while (i + 1 < charArr.length && Character.isDigit(charArr[i + 1])) {
                        num = 10 * num + charArr[i + 1] - '0';
                        i += 1;
                    }
                }
                // add sign and assign sign to number
                if (cur != ' ' && !Character.isDigit(cur) || i == charArr.length - 1) {
                    if (sign == '+') {
                        stack.offerFirst(num);
                    } 
                    if (sign == '-') {
                        stack.offerFirst(-num);
                    }
                    if (sign == '*') {
                        stack.offerFirst(stack.pollFirst() * num);
                    } 
                    if (sign == '/') {
                        stack.offerFirst(stack.pollFirst() / num);
                    }
                    sign = cur;
                    num = 0;
                } 
            }
            int res = 0;
            for (int i: stack) {
                res += i;
            }
            return res;
        }
    }
  • 相关阅读:
    软件工程概论第十二周学习进度
    冲刺第十天
    评价搜狗输入法
    冲刺第九天
    冲刺第八天
    冲刺第七天
    冲刺第六天
    冲刺第五天
    软件工程概论第十一周学习进度
    冲刺第四天
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12791647.html
Copyright © 2011-2022 走看看