LeetCode227: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.

You may assume that the given expression is always valid.

Some examples:

Note: Do not use the eval built-in library function.

Credits:

Special thanks to @ts for adding this problem and creating all test cases.

和Basic Calculator比較相似。都是很巧妙的解法。

runtime:24ms

class Solution {
public:
    int calculate(string s) {
    int len=s.size();
    if(s.empty())
        return 0;
    stack<int> st;
    int num = 0;
    char sign = ‘+‘;
    for(int i=0;i<len;i++){
        if(isdigit(s[i])){
            num = num*10+s[i]-‘0‘;
        }
        if(!isdigit(s[i]) &&‘ ‘!=s[i] || i==len-1){
            if(sign==‘-‘){
                st.push(-num);
            }
            if(sign==‘+‘){
                st.push(num);
            }
            if(sign==‘*‘){
                int tmp=st.top();
                st.pop();
                st.push(tmp*num);
            }
            if(sign==‘/‘){
                int tmp=st.top();
                st.pop();
                st.push(tmp/num);
            }
            sign = s[i];
            num = 0;
        }
    }

    int re = 0;
    while(!st.empty()){
        re += st.top();
        st.pop();
    }
    return re;

    }
};
时间: 2024-11-03 22:00:05

LeetCode227:Basic Calculator II的相关文章

LeetCode 227. 基本计算器 II(Basic Calculator II)

227. 基本计算器 II 227. Basic Calculator II 题目描述 实现一个基本的计算器来计算一个简单的字符串表达式的值. 字符串表达式仅包含非负整数,+,-,*,/ 四种运算符和空格.整数除法仅保留整数部分. LeetCode227. Basic Calculator II中等 示例?1: 输入: "3+2*2" 输出: 7 示例 2: 输入: " 3/2 " 输出: 1 示例 3: 输入: " 3+5 / 2 " 输出:

LeetCode OJ Basic Calculator II

Basic Calculator II 题目 思路 和这个一样:Basic Calculator I 代码 class ExpressionTransformation { public: string trans_to_postfix_expression_to_s(string); // 将得到的表达式转化为后缀表达式 long long int calculate_from_postfix_expression(); // 根据后缀表达式计算值 private: vector<string

【LeetCode】227. Basic Calculator II

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. You may assu

[Swift]LeetCode227. 基本计算器 II | 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" Ou

LeetCode——Basic Calculator II

Description: 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. You may assume that

Leetcode 227. Basic Calculator II JAVA语言

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. You may assume that the given ex

[string]Basic Calculator II

Total Accepted: 14291 Total Submissions: 64507 Difficulty: Medium Implement a basic calculator to evaluate a simple expression string. The expression string contains only non-negative integers, +, -, *, / operators and empty spaces . The integer divi

[LeetCode#227] Basic Calculator II

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. You may assume that the

Java for LeetCode 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. You may assume that the given ex