Basic Calculator
2015-07-09 15:24
211 查看
反复练习
由于没有乘法和除法。只要记录每个数前的正负号,顺序相加即可。
由于没有乘法和除法。只要记录每个数前的正负号,顺序相加即可。
public class Solution { public int calculate(String s) { //s.replaceAll(" ",""); if (s == null || s.length() == 0) { return -1; } Stack<Integer> sign = new Stack<Integer>(); sign.push(1); int lastOp = 1; int result = 0; for (int i = 0; i < s.length(); i++) { switch (s.charAt(i)) { case ' ' : break; case '+' : lastOp = 1; break; case '-' : lastOp = -1; break; case '(' : sign.push(lastOp * sign.peek()); lastOp = 1; break; case ')' : sign.pop(); break; default: int num = 0; while (i < s.length() && Character.isDigit(s.charAt(i))) { num = num * 10 + s.charAt(i) - '0'; i++; } result = result + sign.peek() * lastOp * num; i--; } } return result; } }
相关文章推荐
- 微软Word 2007数学插件 Microsoft Math 提供下载
- 关于C# Math 处理奇进偶不进的实现代码
- JavaScript中的Math.SQRT1_2属性使用简介
- JavaScript Math.ceil() 函数使用介绍
- 与Math.pow 相反的函数使用介绍
- JavaScript中使用指数方法Math.exp()的简介
- JavaScript使用Math.Min返回两个数中较小数的方法
- Ajax获取页面被缓存的解决方法
- JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
- JavaScript中Math对象使用说明
- javascript对象之内置对象Math使用方法
- 基于java math API 的详细解释说明
- Mysql Error Code : 1436 Thread stack overrun
- 简介JavaScript中用于处理正切的Math.tan()方法
- 浅谈JavaScript中的Math.atan()方法的使用
- 基于java中stack与heap的区别,java中的垃圾回收机制的相关介绍
- PHP内置的Math函数效率测试
- 在JavaScript中使用对数Math.log()方法的教程
- JavaScript中用于四舍五入的Math.round()方法讲解
- 简介JavaScript中Math.LOG10E属性的使用