Basic Calculator
来源:互联网 发布:sql 转成java代码 编辑:程序博客网 时间:2024/04/28 10:08
Basic Calculator
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.
public class Solution { public int calculate(String s) { if (s == null || s.length() == 0) return Integer.MAX_VALUE; Stack<Integer> stack = new Stack<Integer>(); int number = 0; int sign = 1; int result = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (Character.isDigit(c)) { number = number * 10 + (int)(c - '0'); } else if (c == '+') { result = result + number * sign; sign = 1; number = 0; } else if ( c == '-') { result = result + number * sign; sign = -1; number = 0; } else if (c == '(' ){ stack.push(result); stack.push(sign); result = 0; sign = 1; } else if (c == ')') { result = result + sign * number; number = 0; result = result * stack.pop(); result = result + stack.pop(); } } if(number != 0) result = result + number * sign; 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
- 选择排序
- HBase 在淘宝的应用和优化
- 黑马程序员_IO
- 字符流,字节流,缓冲
- BZOJ3211 花神游历各国(树状数组+并查集)
- Basic Calculator
- 【C++探索之旅】开宗明义+第一部分第一课:什么是C++?
- Amazon AWS S3 部署静态网站 + 绑定顶级域名 + DNSPod
- eclipse导入JavaEE库
- 【Android 动画】View Animation详解(一)
- 黑马程序员_反射2
- UML图的一些自我理解
- LNMP环境搭建
- Sublime Text2 取消打开时弹出升级到新版本的提示