leetcode#224 Basic Calculator
来源:互联网 发布:手机视频剪辑拼接软件 编辑:程序博客网 时间:2024/04/30 20:49
题目描述:
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.
这道题思路比较简单,就是分别计算每一个括号内的表达式的大小。当读到(
时就入栈,读到)
时就出栈。如此不断执行直到计算出结果。唯一的难点就在于容易把正负号搞混。在我的代码里,我把括号用-1001和-1002来标记正负。
int stack[1000000];int p=0;void push(int x) { stack[p++] = x;}int pop() { return stack[--p];}int calculate(char* s) { int n = strlen(s); bool flag = true; // record + and - int number = 0; // calculate each integer int sum = 0; // calculate the sum for (int i=0; i<n; i++) { switch (s[i]) { case ' ' : break; case '(' : push(flag?-1001:-1002); flag = true; break; case ')' : { int c = pop(); int tmp = number; while (c != -1001 && c != -1002) { tmp += c; c = pop(); } push(c==-1001?tmp:-tmp); number = 0; break; } case '+' : push(number); number = 0; flag=true; break; case '-' : push(number); number = 0; flag = false; break; default : { number = flag ? number * 10 + (s[i] - '0') : number * 10 - (s[i] - '0'); } } } while(p != 0) { sum += pop(); } return sum + number;}
0 0
- Basic Calculator - LeetCode 224
- Leetcode 224: Basic Calculator
- leetcode 224 Basic Calculator
- leetcode#224 Basic Calculator
- leetcode[224]:Basic Calculator
- LeetCode(224)Basic Calculator
- [LeetCode 224]Basic Calculator
- leetcode 224: Basic Calculator
- LeetCode 224 Basic Calculator
- Leetcode 224: Basic Calculator
- leetcode-224-Basic Calculator
- leetcode#224 Basic Calculator
- LeetCode.224 Basic Calculator
- LeetCode(224) Basic Calculator
- LeetCode No.224 Basic Calculator
- 【LeetCode】Basic Calculator && Basic Calculator II
- LeetCode - Basic Calculator & Basic Calculator II
- Leetcode之Basic Calculator & Basic Calculator II
- django安装报错error: [Errno 22] invalid mode ('wb') or filename:
- 课前测试
- [LeetCode] 142. Linked List Cycle II java
- 微服务技术栈
- 数理统计概念
- leetcode#224 Basic Calculator
- c++ 题目
- 1163 最高的奖励(贪心+优先队列)
- mvc后台校验 通过打标签的方式
- 项目测试问题总结
- [LeetCode] 143. Reorder List java
- SSL 2297——单词的划分_DP
- 各种排序的运行时间对比
- 2017 3 23课堂前测