Leetcode: Basic Calculator
来源:互联网 发布:floyd算法负权 编辑:程序博客网 时间:2024/06/08 04:49
Question
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 .
You may assume that the given expression is always valid.
Some examples:
“1 + 1” = 2
” 2-1 + 2 ” = 3
“(1+(4+5+2)-3)+(6+8)” = 23
Note: Do not use the eval built-in library function.
Hide Tags Stack Math
Hide Similar Problems (M) Evaluate Reverse Polish Notation (M) Basic Calculator II (M) Different Ways to Add Parentheses
Solution
Get idea from here, here2
class Solution(object): def calculate(self, s): """ :type s: str :rtype: int """ if s=='': return 0 res, num, sign = 0, 0 , 1 stack = [] for elem in s: if elem.isdigit(): num = num*10 + ord(elem) - ord('0') else: if elem == '+': res += num*sign sign = 1 elif elem == '-': res += num*sign sign = -1 elif elem=='(': stack.append(res) stack.append(sign) res, sign = 0, 1 # calculate a new string, like '0+expression' elif elem==')': res += num*sign res *= stack.pop(-1) res += stack.pop(-1) sign = 1 else: continue num = 0 res += num*sign return res
0 0
- 【LeetCode】Basic Calculator && Basic Calculator II
- LeetCode - Basic Calculator & Basic Calculator II
- Leetcode之Basic Calculator & Basic Calculator II
- [leetcode] Basic Calculator
- Basic Calculator - LeetCode 224
- LeetCode Basic Calculator
- leetcode:Basic Calculator
- [leetcode][math] Basic Calculator
- [LeetCode] Basic Calculator
- Leetcode 224: Basic Calculator
- leetcode 224 Basic Calculator
- [LeetCode] Basic Calculator II
- [leetcode] Basic Calculator II
- [Leetcode] Basic Calculator
- leetcode Basic Calculator
- leetcode Basic Calculator II
- LeetCode-Basic Calculator
- leetcode Basic Calculator 栈
- IO技术使用时需要的明确
- Android Studio 定制快速生成Jni 头文件工具 Ndk教程
- LeetCode-Contains Duplicate
- LightOJ 1210 - Efficient Traffic System【强连通图】
- Python string format
- Leetcode: Basic Calculator
- java break语句详解 break label;语句的使用
- TCP释放连接时为什么time_wait状态必须等待2MSL时间(阅读笔记)?
- XHTML表单
- Four Arithmetic Operation
- VMware Fusion 启动物理磁盘及U盘的方法
- MySQLの执行MySQL备份
- cocos studio 学习笔记
- 为什么常说程序员35岁是道坎?