Basic Calculator
来源:互联网 发布:提拉紧致精华液 知乎 编辑:程序博客网 时间:2024/04/28 12:41
反复练习
由于没有乘法和除法。只要记录每个数前的正负号,顺序相加即可。
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; }}
0 0
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- Basic Calculator
- poj 2185 Milking Grid(KMP)
- 如何用外游VPN优雅的上谷歌Google?
- P2P系统哪家强,功能其实都一样
- pyhon中的单引号,双引号和三引号
- CAS实现SSO 学习(五)
- Basic Calculator
- PHP sprintf() 函数
- 微信新增永久视频素材-java
- 28.字符串的排列
- 编写自己的Shell解释器
- ubuntu 编译独立与openwrt的uci
- What Dose the Linphone Do When Starting?
- arm-none-linux-gnueabi-gcc下载
- Linux下搭建MPI