如何使用Basic Calculator进行复杂计算?

2026-04-01 18:591阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计274个文字,预计阅读时间需要2分钟。

如何使用Basic Calculator进行复杂计算?

实现一个基本的计算器,用于评估一个简单的表达式字符串。该表达式字符串可能包含括号(和)、加减符号(+或-)、非负整数和空格。例如:输入:”1 ++ 1” 输出:2

Implement a basic calculator to evaluate a simple expression string.

The expression string may contain open ( and closing parentheses ), the plus + or minus sign -, non-negative integers and empty spaces .

Example 1:

Input: "1 + 1"
Output: 2

Example 2:

Input: " 2-1 + 2 "
Output: 3

Example 3:

Input: "(1+(4+5+2)-3)+(6+8)"
Output: 23

如何使用Basic Calculator进行复杂计算?

Note:

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

class Solution: def calculate(self, s): """ :type s: str :rtype: int """ num,sign,i = 0,1,0 op = [] while i <len(s): if s[i].isdigit(): start = i while i<len(s) and s[i].isdigit(): i += 1 n = int(s[start:i]) num += n * sign continue if s[i]==‘+‘: sign = 1 i += 1 continue if s[i]==‘-‘: sign = -1 i += 1 continue if s[i]==‘(‘: op.append(num) op.append(sign) num = 0 sign = 1 i += 1 continue if s[i]==‘)‘: num = num * op.pop() num += op.pop() i += 1 continue i += 1 return num

本文共计274个文字,预计阅读时间需要2分钟。

如何使用Basic Calculator进行复杂计算?

实现一个基本的计算器,用于评估一个简单的表达式字符串。该表达式字符串可能包含括号(和)、加减符号(+或-)、非负整数和空格。例如:输入:”1 ++ 1” 输出:2

Implement a basic calculator to evaluate a simple expression string.

The expression string may contain open ( and closing parentheses ), the plus + or minus sign -, non-negative integers and empty spaces .

Example 1:

Input: "1 + 1"
Output: 2

Example 2:

Input: " 2-1 + 2 "
Output: 3

Example 3:

Input: "(1+(4+5+2)-3)+(6+8)"
Output: 23

如何使用Basic Calculator进行复杂计算?

Note:

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

class Solution: def calculate(self, s): """ :type s: str :rtype: int """ num,sign,i = 0,1,0 op = [] while i <len(s): if s[i].isdigit(): start = i while i<len(s) and s[i].isdigit(): i += 1 n = int(s[start:i]) num += n * sign continue if s[i]==‘+‘: sign = 1 i += 1 continue if s[i]==‘-‘: sign = -1 i += 1 continue if s[i]==‘(‘: op.append(num) op.append(sign) num = 0 sign = 1 i += 1 continue if s[i]==‘)‘: num = num * op.pop() num += op.pop() i += 1 continue i += 1 return num