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

小规模纳税人免征增值税政策北京seo网络优化师

小规模纳税人免征增值税政策,北京seo网络优化师,南平网站怎么做seo,使用免费建站224. 基本计算器(困难) 方法:双栈解法 思路 我们可以使用两个栈 nums 和 ops 。 nums : 存放所有的数字ops :存放所有的数字以外的操作,/- 也看做是一种操作 然后从前往后做,对遍历到的字符做…

224. 基本计算器(困难)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法:双栈解法

思路

  • 我们可以使用两个栈 nums 和 ops

    • nums : 存放所有的数字
    • ops :存放所有的数字以外的操作,+/- 也看做是一种操作
  • 然后从前往后做,对遍历到的字符做分情况讨论:

    • 空格 : 跳过
    • ( : 直接加入 ops 中,等待与之匹配的 )
    • ) : 使用现有的 nums 和 ops 进行计算,直到遇到左边最近的一个左括号为止,计算结果放到 nums
    • 数字 : 从当前位置开始继续往后取,将整一个连续数字整体取出,加入 nums
    • +/- : 需要将操作放入 ops 中。在放入之前先把栈内可以算的都算掉,使用现有的 nums 和 ops 进行计算,直到没有操作或者遇到左括号,计算结果放到 nums
  • 一些细节:

    • 由于第一个数可能是负数,为了减少边界判断。一个小技巧是先往 nums 添加一个 0
    • 为防止 () 内出现的首个字符为运算符,将所有的空格去掉,并将 (- 替换为 (0-,(+ 替换为 (0+

代码

class Solution {
public:void replace(string &s) {int pos = s.find(" ");while (pos != -1) {s.replace(pos, 1, "");pos = s.find(" ");}}int calculate(string s) {// 存放所有数字stack<int> nums;// 为了防止第一个数是负数,在最前面补0nums.push(0);// 将所有空格去掉replace(s);// 存放所有操作符stack<char> ops;for(int i=0; i<s.size(); ++i) {char c = s[i];if(c == '(') ops.push(c);else if(c == ')'){// 计算到最近一个左括号为止while(!ops.empty()) {char op = ops.top();if(op != '(')   calc(nums, ops);else {ops.pop();break;}}}else {// 数字if(isdigit(c)) {int cur_num = 0;int j = i;// 将从 i 开始后面的连续数字整体取出,加入numswhile(j < s.size() && isdigit(s[j])) {cur_num = cur_num * 10 + (s[j++] - '0'); }nums.push(cur_num);i = j - 1;}// + -else {if(i > 0 && (s[i-1] == '(' || s[i-1] == '+' || s[i-1] == '-')) {nums.push(0);}// 有新操作要入栈时,把栈内可以算的算了while(!ops.empty() && ops.top() != '(') {calc(nums, ops);}ops.push(c);}}}while(!ops.empty()) calc(nums, ops);return nums.top();   }void calc(stack<int> &nums, stack<char> &ops) {if(nums.size() < 2 || ops.empty()) return ;int b = nums.top(); nums.pop();int a = nums.top(); nums.pop();char op = ops.top(); ops.pop();nums.push(op == '+' ? a+b : a-b); }
};

参考资料

  1. 【进阶补充】双栈解决通用「表达式计算」问题
http://www.mmbaike.com/news/37565.html

相关文章:

  • 做定制网站多少钱百度搜索资源
  • 怎么自建设部网站查询公司资质搜索自媒体平台
  • 如何利用站群做网站网站测速
  • wordpress 短信验证码seo优化排名百度教程
  • 给国外网站做流量网上推广产品哪个网好
  • 义乌做网站的兰州seo优化
  • 广告设计公司专业报价表刷关键词排名seo软件
  • wordpress建站主题网络查询网站
  • 网站制作需要的材料网站seo设置是什么意思
  • 做空气开关那个网站推广比较好seo编辑招聘
  • 万寿路网站建设网站推广系统
  • 下载宝硬盘做网站如何做网站建设
  • 网站建设收费标准报价网站搜索引擎优化
  • wordpress安装到万网seo在线优化平台
  • 做排名的网站国外网站推广
  • 自己做的网站打不开西安优化排名推广
  • 哪个网站教做饭做的好百度一下百度搜索首页
  • 注册网站查询网页优化seo公司
  • 官方网站app百度网页翻译
  • 合肥专业做淘宝网站百度优化服务
  • 网站改版模版百度识图网页版在线
  • 如何做网站卡密天津seo方案
  • 怎样搭建一个企业网站交换神器
  • wordpress登录没反应网站seo诊断分析
  • 免费.net网站空间最权威的排行榜网站
  • 100个科技小制作企业网站优化软件
  • 美国一般用什么做网站主页百度竞价效果怎么样
  • 郑州网站制作价格公司企业网站开发
  • 域名购买 网站建设网站页面优化方法
  • 下载网站站开发搜狗网页版