*LeetCode-Basic Calculator II
2015-10-01 08:15
316 查看
这个题也是每次遇到符号的话计算前一次符号的计算 因为符号意味着这个num结束 所以每次sign要存起来 存成char 下次判断用
但是这个题是要把每个数字push进去 假如是乘除 算了这次再push 然后最后累加起来
其中注意最后一个位的时候也要做一遍是sign的 push最后一个数字进去
public class Solution {
public int calculate(String s) {
if ( s == null || s.length() == 0 )
return 0;
s = s.replaceAll("\\s","");
char sign = '+';
int num = 0;
int res = 0;
Stack <Integer> stack = new Stack<Integer>();
for ( int i = 0; i < s.length(); i ++ ) {
if ( Character.isDigit(s.charAt(i) )) {
num = 10 * num + s.charAt(i) -'0';
}
if ( !Character.isDigit(s.charAt(i) ) || i == s.length() - 1 ) {
if ( sign == '+' ){
stack.push(num);
}
else if ( sign == '-'){
stack.push(-num);
}
else if ( sign == '*'){
stack.push( stack.pop() * num );
}
else
stack.push( stack.pop() / num );
sign = s.charAt(i);
num = 0;
}
}
for ( int i : stack )
res += i;
return res;
}
}
但是这个题是要把每个数字push进去 假如是乘除 算了这次再push 然后最后累加起来
其中注意最后一个位的时候也要做一遍是sign的 push最后一个数字进去
public class Solution {
public int calculate(String s) {
if ( s == null || s.length() == 0 )
return 0;
s = s.replaceAll("\\s","");
char sign = '+';
int num = 0;
int res = 0;
Stack <Integer> stack = new Stack<Integer>();
for ( int i = 0; i < s.length(); i ++ ) {
if ( Character.isDigit(s.charAt(i) )) {
num = 10 * num + s.charAt(i) -'0';
}
if ( !Character.isDigit(s.charAt(i) ) || i == s.length() - 1 ) {
if ( sign == '+' ){
stack.push(num);
}
else if ( sign == '-'){
stack.push(-num);
}
else if ( sign == '*'){
stack.push( stack.pop() * num );
}
else
stack.push( stack.pop() / num );
sign = s.charAt(i);
num = 0;
}
}
for ( int i : stack )
res += i;
return res;
}
}
相关文章推荐
- jQuery来源学习笔记:整体结构
- Go 语言并发笔记
- Combination Sum II
- DOS 选择跳转实现、dos + bcp 双击导入和导出数据
- 各种yum源
- 「Redis学习笔记」任务队列
- 数3退1
- codeblock快捷键
- 雕虫小技--应用程序图标错乱怎么办
- Java 面向对象
- 【解决方法】ld: warning: directory not found for option
- SpriteBuilder中的碰撞分类(Categories)和掩码(Masks)
- SpriteBuilder中的碰撞分类(Categories)和掩码(Masks)
- SpriteBuilder中的碰撞分类(Categories)和掩码(Masks)
- 多态
- qt model 中的角色 role Qt::CheckStateRole角色
- 功能测试用例
- 《赢在中国》观后感
- 《幸福来敲门》观后感
- **LeetCode-Basic Calculator