基本计算器II

实现一个基本的计算器来计算一个简单的字符串表达式的值。

字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格  。 整数除法仅保留整数部分。

示例 1:

输入: "3+2*2"

输出: 7

示例 2:

输入: " 3/2 "

输出: 1

示例 3:

输入: " 3+5 / 2 "

输出: 5

说明:

  • 你可以假设所给定的表达式都是有效的。
  • 不要使用内置的库函数 eval。
 class Solution {
public int calculate(String s) {
int result=0,len=s.length(),num=0;
char op='+'; //初始上一个运算符为加法 上个数字为0
Stack<Integer> stack=new Stack<Integer>();
for(int i=0;i<len;i++){
char c=s.charAt(i);
if(c>='0'){
num=num*10+s.charAt(i)-'0';
}
if(c<'0'&&c!=' '||i==len-1){
if(op=='+') stack.push(num);
if(op=='-') stack.push(-num);
if(op=='*'||op=='/'){
int temp=(op=='*')?stack.pop()*num:stack.pop()/num;
stack.push(temp);
}
op=s.charAt(i);
num=0;
}
}
while(!stack.isEmpty()){
result+=stack.pop();
}
return result;
}
}

最新文章

  1. javase-排序
  2. Django HTML 显示文章摘要
  3. sax解析案例(javabean封装xml文档数据)
  4. Coursera台大机器学习基础课程学习笔记2 -- 机器学习的分类
  5. Xamarin.Android之转换,呼叫,查看历史纪录
  6. Python3爬虫学习
  7. ListView 文件重命名
  8. Fast Report Data Filter
  9. Struts_json插件配置参数
  10. oracle表空间查询维护命令大全之二(undo表空间)
  11. 【原】从一个bug浅谈YUI3组件的资源加载
  12. xcode Workspaces
  13. gen_create_syn.sql
  14. 【java基础】接口VS抽象类
  15. git之命令git checkout
  16. 脚本一键部署lnmp
  17. 开发手记:Linux下更改Oracle表空间大小
  18. 如何查看xmtb项目接口
  19. 把本地git仓库的项目上传到远程仓库
  20. 【LeetCode-面试算法经典-Java实现】【136-Single Number(仅仅出现一次的数字)】

热门文章

  1. subline应用之python
  2. HDU 4366 Successor 分块做法
  3. SOLRJ单机-添加文档,删除,查询操作
  4. Bootstrap中的datetimepicker浅谈
  5. python工具之myql数据库操作
  6. PKU_campus_2018_A Wife
  7. hihocoder1736 最大的K-偏差排列
  8. vue2.0组件生命周期探讨
  9. Tomcat和搜索引擎网络爬虫的攻防
  10. Android(java)学习笔记169:服务(service)之为什么使用服务