LeetCode Basic Calculator 栈
2015-11-09 18:56
225 查看
思路:
注意的是,刚开始觉的既然只有加减法,且没有负数,那么括号去掉不就行了。。。
考虑下面的test case:
java code :
注意的是,刚开始觉的既然只有加减法,且没有负数,那么括号去掉不就行了。。。
考虑下面的test case:
Input: "2-(5-6)" Output: -9 Expected: 3
java code :
public class Solution { public int calculate(String s) { Stack<Integer> stack = new Stack<Integer>(); int number = 0, sign = 1, result = 0; for(int i = 0; i < s.length(); ++i) { char c = s.charAt(i); if(Character.isDigit(c)) { number = 10 * number + (c - '0'); }else if(c == '+') { result += sign * number; sign = 1; number = 0; }else if(c == '-') { result += sign * number; sign = -1; number = 0; }else if(c == '(') { stack.push(result); stack.push(sign); sign = 1; result = 0; }else if(c == ')') { result += sign * number; number = 0; result *= stack.pop(); result += stack.pop(); } } result += sign * number; return result; } }
相关文章推荐
- JAVA基础复习03
- JAVA基础复习03
- 角谷猜想(C程序设计进阶第3周)
- Introduction to Algorithm - Summary of Chapter 6 - Heapsort
- easyui-combobox 取值问题
- BroadcastReceiver广播传递信息
- Makefile中的“= := ?=”
- 正确使用Block避免Cycle Retain和Crash
- 大道至简读后感---从编程到工程
- js中冒号的作用
- JVM调优总结(十)-调优方法
- UVA10603倒水问题加优先队列
- KaokaoSDK接入备注
- eclipse远程调试hadoop2.6
- timit运行示例二
- webservice的理解
- 【学习总结】整理一下int, NSInteger 等概念
- 单词翻转(C程序设计进阶第3周)
- timit运行示例一
- std::vector元素去重方法