资讯专栏INFORMATION COLUMN

[LeetCode] 227. Basic Calculator II

silvertheo / 1864人阅读

Problem

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

Note:

You may assume that the given expression is always valid.
Do not use the eval built-in library function.

Solution
class Solution {
    public int calculate(String s) {
        s = s.trim().replaceAll(" ", "");
        if (s == null || s.length() == 0) return 0;
        long pre = 0;
        int res = 0, i = 0;
        char sign = "+";
        
        while (i < s.length()) {
            long cur = 0;
            while (i < s.length() && Character.isDigit(s.charAt(i))) {
                cur = cur*10 + (s.charAt(i)-"0");
                i++;
            }
            switch (sign) {
                case "+":
                    res += pre;
                    pre = cur; break;
                case "-":
                    res += pre;
                    pre = -cur; break;
                case "*":
                    pre *= cur; break;
                case "/":
                    pre /= cur; break;
            }
            if (i < s.length()) {
                sign = s.charAt(i);
                i++;
            }
        }
        
        res += pre;
        return res;
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77154.html

相关文章

  • Leetcode[227] Basic Calculator II

    摘要:复杂度思路用两个来分别记录当前的结果和操作符注意每一次统计当前的的时候,要看一下下一位的操作符。有一种的方法,是表示的是匹配任意的空白符,包括空格,制表符,换行符,中文全角空格等。也可以用更简单的方法,。 LeetCode[227] Basic Calculator II Implement a basic calculator to evaluate a simple expres...

    chaos_G 评论0 收藏0
  • 224. Basic Calculator & 227. Basic Calculator

    摘要:题目链接,就是感觉条件有点多简单点的写法,把直接用存在里面,就存成,存成题目链接这题就是碰到在加减后面怎么处理的问题。用一个来表示之前的,所以碰到现在是乘的时候就,除类似。 224. Basic Calculator 题目链接:https://leetcode.com/problems... stack,就是感觉条件有点多 public class Solution { pub...

    _DangJin 评论0 收藏0
  • 227. Basic Calculator II

    摘要:但是乘除就会有问题,要特殊处理。这题只有加减和括号,优先级就是括号里的先计算,所有我们把括号里的内容当做操作的基本单位。遇到遇到和,遇到遇到,弹出再遇到弹出,这里只是把对数字的操作变成了对的操作,去括号的逻辑一样。 The expression string contains only non-negative integers, +, -, *, / operators and em...

    littlelightss 评论0 收藏0
  • [Leetcode] Basic Calculator 基本计算器

    摘要:难点在于多了括号后如何处理正负号。但是每多一个括号,都要记录下这个括号所属的正负号,而每当一个括号结束,我们还要知道出来以后所在的括号所属的正负号。 Basic Calculator I 最新更新请见: https://yanjia.li/zh/2019/01/... Implement a basic calculator to evaluate a simple express...

    ky0ncheng 评论0 收藏0
  • Leetcode[224] Basic Calculator

    摘要:复杂度思路将字符串先转换成后缀表达式,再将其出来。 Leetcode[224] Basic Calculator Implement a basic calculator to evaluate a simple expression string. The expression string may contain open ( and closing parentheses ),...

    William_Sang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<