如何使用Basic Calculator进行复杂计算?
- 内容介绍
- 文章标签
- 相关推荐
本文共计274个文字,预计阅读时间需要2分钟。
实现一个基本的计算器,用于评估一个简单的表达式字符串。该表达式字符串可能包含括号(和)、加减符号(+或-)、非负整数和空格。例如:输入:”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
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分钟。
实现一个基本的计算器,用于评估一个简单的表达式字符串。该表达式字符串可能包含括号(和)、加减符号(+或-)、非负整数和空格。例如:输入:”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
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

