当前位置: 首页 > news >正文

遵义网站建设托管公司网站 动态内容加速

遵义网站建设托管公司,网站 动态内容加速,微信商城小程序开发教程,专业的网站制作专业公司题目描述#xff1a; 给你一个字符串表达式 s #xff0c;请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意#xff1a;不允许使用任何将字符串作为数学表达式计… 题目描述 给你一个字符串表达式 s 请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意不允许使用任何将字符串作为数学表达式计算的内置函数比如 eval() 。 解题思路 使用栈数字栈 思路* / 直接算 - 后面再算最后只剩 -再while(!numStack.isEmpty){计算加减就行} 1.1 遍历字符串是数字直接放到数字栈 1.2 若遇到字符若是 * /则从栈中弹出一个num进行计算 若是 则直接压入栈中 若是 -则变成相反数再直接压入栈中 1.3 最后遍历数字栈将所有数字求和即为表达式的结果 import java.util.Stack;/*** author: Arbicoral* Description: 输入字符串 “32*2”求结果。*/ public class KuaiShou {public static void main(String[] args) {String s 3323*2-33-53/5;System.out.println(s calculate1(s));System.out.println(s calculate2(s));}/*** 使用栈数字栈* 思路* / 直接算 - 后面再算最后只剩 -再while(!numStack.isEmpty){计算加减就行}* 1.1 遍历字符串是数字直接放到数字栈* 1.2 若遇到字符若是 * /则从栈中弹出一个num进行计算若是 则直接压入栈中若是 -则变成相反数再直接压入栈中* 1.3 最后遍历数字栈将所有数字求和即为表达式的结果* return 表达式的结果*/public static int calculate2(String expression) {int num 0;int len expression.length();StackInteger numStack new Stack();// 数字栈char operator ;// 要放到循环的外面如果放到里面则每次的操作符都是 而我们只需要第一次是 即可后面都要不断更新的for (int i 0; i len - 1; i) {char c expression.charAt(i);if (Character.isDigit(c)){num num * 10 (c - 0);}if (!Character.isDigit(c) c ! || i len-1){switch (operator) {case - numStack.push(num);case - - numStack.push(-num);case * - numStack.push(numStack.pop() * num);case / - numStack.push(numStack.pop() / num);}// 重置 num 和 操作符 注意不能放到 if 外面不然每读取表达式中的一个字符num 和 operator都会变而我们只需要operator不是数字num 0;operator c;}}// 出 for()此时栈中只剩下 -操作int res 0;while (!numStack.isEmpty()){res numStack.pop();}return res;}/*** 思路将字符串中的操作符全部变成 即遇到 - 的则再取一个然后变成对应的负数遇到 * / 就直接计算最后将栈中的所有数相加即可*/public static int calculate1(String expression) {StackInteger stack new Stack();int num 0;char operation ;for (int i 0; i expression.length(); i) {char c expression.charAt(i);if (Character.isDigit(c)) {num num * 10 (c - 0);}if (!Character.isDigit(c) c ! || i expression.length() - 1) {if (operation ) {stack.push(num);} else if (operation -) {stack.push(-num);} else if (operation *) {stack.push(stack.pop() * num);} else if (operation /) {stack.push(stack.pop() / num);}num 0;operation c;}}int result 0;while (!stack.isEmpty()) {result stack.pop();}return result;} }
http://www.hkea.cn/news/14406416/

相关文章:

  • 电脑宽带网站东莞昨天发生的重大新闻
  • 网站地图页面设计网站开发 外包空心
  • 用vs2012怎么做网站wordpress+广告联盟
  • 网页界面设计的主要内容宁波seo外包方案
  • 世界各国o2o响应式网站邢台做wap网站的地方
  • 响应式全屏网站惠州seo外包平台
  • 网站推广员是什么怎么制作游戏u盘
  • 网站改标题装饰公司营销型网站
  • 网站治做啊app先做网站还是先解析
  • 朝阳区建网站公司有帮云旅游系统网站开发的背景
  • 网站开发实战成都专业做游戏网站
  • 网页设计图片轮播网站专题优化
  • 百度网站官网怎么做国外印花图案设计网站
  • 甘肃省建设厅官方网站信息网如何添加网站代码
  • 网站有哪些备案奇胜网络 邯郸网站建设
  • 建立网站坐等访问者发现什么网站都能进的浏览器
  • 福州网站制作哪里好百度搜索引擎优化的推广计划
  • 按城市亭湖建设局网站民治做网站哪家便宜
  • 深圳做网页的网站提高wordpress访问速度
  • 视频网站费用wordpress 数据库 开发
  • 360网站外链建设六安市城乡建设网站
  • 好的网站设计特点二维码网站建设源码
  • 北京的制作网站的公司一站式商家服务平台
  • 网站推广方案策划书2000mvc5网站开发之六
  • 大连做网站qq群门户网站建设进度
  • 国家建设部网站注册工程师人员查询网站建设开发实训总结
  • 临沂网站建设价格腾讯邮箱邮箱入口
  • 长沙百度首页优化宁波seo整体优化公司
  • 东莞 网站建设多少钱备案公司网站建设方案书
  • 网站建设收费标准市场网站架构拓扑图