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

安阳市网站建设的公司开发网站公司多少钱

安阳市网站建设的公司,开发网站公司多少钱,广东新闻联播2020,都江堰住房和城乡建设厅网站计算器 1.字符串转整数 string s 458;int n 0; for (int i 0; i s.size(); i) {char c s[i];n 10 * n (c - 0); } // n 现在就等于 458 2.处理加减法 我们拿字符串算式1-123为例#xff0c;来说一个很简单的思路#xff1a; 1、先给第一个数字加…计算器 1.字符串转整数 string s 458;int n 0; for (int i 0; i s.size(); i) {char c s[i];n 10 * n (c - 0); } // n 现在就等于 458 2.处理加减法 我们拿字符串算式1-123为例来说一个很简单的思路 1、先给第一个数字加一个默认符号变成1-123。 2、把一个运算符和数字组合成一对儿也就是三对儿1-123把它们转化成数字然后放到一个栈中。 3、将栈中所有的数字求和就是原算式的结果。 int calculate(string s) {stackint stk;// 记录算式中的数字int num 0;// 记录 num 前的符号初始化为 char sign ;for (int i 0; i s.size(); i) {char c s[i];// 如果是数字连续读取到 numif (isdigit(c)) num 10 * num (c - 0);// 如果不是数字就是遇到了下一个符号// 之前的数字和符号就要存进栈中if (!isdigit(c) || i s.size() - 1) {switch (sign) {case :stk.push(num); break;case -:stk.push(-num); break;}// 更新符号为当前符号数字清零sign c;num 0;}}// 将栈中所有结果求和就是答案int res 0;while (!stk.empty()) {res stk.top();stk.pop();}return res; } i就是从左到右扫描sign和num跟在它身后。当s[i]遇到一个运算符时情况是这样的 所以说此时要根据sign的 case 不同选择nums的正负号存入栈中然后更新sign并清零nums记录下一对儿符合和数字的组合。 另外注意不只是遇到新的符号会触发入栈当i走到了算式的尽头i s.size() - 1也应该将前面的数字入栈方便后续计算最终结果。 3. 处理乘除法 for (int i 0; i s.size(); i) {char c s[i];if (isdigit(c)) num 10 * num (c - 0);if (!isdigit(c) || i s.size() - 1) {switch (sign) {int pre;case :stk.push(num); break;case -:stk.push(-num); break;// 只要拿出前一个数字做对应运算即可case *:pre stk.top();stk.pop();stk.push(pre * num);break;case /:pre stk.top();stk.pop();stk.push(pre / num);break;}// 更新符号为当前符号数字清零sign c;num 0;} } 乘除法优先于加减法体现在乘除法可以和栈顶的数结合而加减法只能把自己放入栈。 4.处理括号 那么为什么说处理括号没有看起来那么难呢因为括号具有递归性质。我们拿字符串3*(4-5/2)-6举例 calculate(3*(4-5/2)-6) 3 * calculate(4-5/2) - 6 3 * 2 - 6 0 可以脑补一下无论多少层括号嵌套通过 calculate 函数递归调用自己都可以将括号中的算式化简成一个数字。换句话说括号包含的算式我们直接视为一个数字就行了。 现在的问题是递归的开始条件和结束条件是什么遇到(开始递归遇到)结束递归python版本 def calculate(s: str) - int:def helper(s: List) - int:stack []sign num 0while len(s) 0:c s.pop(0)if c.isdigit():num 10 * num int(c)# 遇到左括号开始递归计算 numif c (:num helper(s)if (not c.isdigit() and c ! ) or len(s) 0:if sign : ...elif sign -: ... elif sign *: ...elif sign /: ...num 0sign c# 遇到右括号返回递归结果if c ): breakreturn sum(stack)return helper(list(s)) Java版本224. 基本计算器  public int calculate(String s) {// Write your code hereDequeCharacter q new LinkedList();for (char c : s.toCharArray()) {q.offer(c);}return dfs_cal(q); } // 得到括号内的结果 public int dfs_cal(DequeCharacter q) {StackInteger stack new Stack();char op ;int num 0;while (!q.isEmpty()) {char c q.pollFirst();if (c () {num dfs_cal(q);}if (Character.isDigit(c)) {num num * 10 c - 0;}// 读取到最后一位时 要处理最后的逻辑if (q.isEmpty() || (!Character.isDigit(c) c ! )) {if (op ) {stack.push(num);} else if (op -) {stack.push(-num);} else if (op *) {stack.push(stack.pop() * num);} else if (op /) {stack.push(stack.pop() / num);}op c;num 0;}// 右括号判断只能在最后 前面要处理计算逻辑if (c )) {break;}}int res 0;for (int t : stack) {res t;}return res; } 中文转阿拉伯 //中文字转阿拉伯数字 public long zn_int(String num){if (num null || num.length() 0) return 0L;HashMapCharacter, Long numMap new HashMap();numMap.put(零, 0L);numMap.put(一, 1L);numMap.put(二, 2L);numMap.put(三, 3L);numMap.put(四, 4L);numMap.put(五, 5L);numMap.put(六, 6L);numMap.put(七, 7L);numMap.put(八, 8L);numMap.put(九, 9L);numMap.put(十, 10L);numMap.put(廿, 20L);numMap.put(卅, 30L);numMap.put(百, 100L);numMap.put(千, 1000L);numMap.put(万, 10_000L);numMap.put(亿, 100_000_000L);// year 2 long 年份判断 一九四五 这种long tmpres 0; for (char c : num.toCharArray()) {long cur numMap.get(c);if (cur 10) {tmpres -1;break;}tmpres tmpres*10 cur;}if (tmpres 0) return tmpres;LinkedListLong stack new LinkedList();for (char c : num.toCharArray()) {long cur numMap.get(c);if (stack.isEmpty() || stack.peek() cur) {stack.push(cur);} else {long sum 0;while (!stack.isEmpty() stack.peek() cur) {sum stack.pop();}sum (sum 0 ? 1 : sum);stack.push(sum * cur);}}long res 0;for (long t : stack){res t;}return res; }
http://www.huolong8.cn/news/239970/

相关文章:

  • 生态建设研究所网站新蔡县住房和城乡建设局网站
  • 开发一个商城网站多少钱0基础 网站建设
  • 铜川网站建设电话贵阳企业网站排名优化
  • 手机网站建设宣传好十大广告公司排名
  • 网站设建设wordpress函数讲解
  • 注册网站用户名怎么填写用flask做网站
  • 成都企业网站建设 四川冠辰科技专业做网站的公司有没有服务器
  • 个人简历网站开发株洲定制网站建设
  • 企业型网站建设咨询电话整合营销公司
  • 宁波网站建设团队排名石家庄seo报价
  • 优购物app官方下载昆山优化外包
  • 用PS做网站搜索框书画院网站建设方案
  • php 网站管理系统如何注册国外网站
  • 2015网站备案教程互联网建筑设计平台
  • 石景山网站制作建设公司毕业设计h5网站制作
  • 哈尔滨微网站建设公司免费模板简历
  • 福州网站建设加推广网页制作讲解视频
  • 一般公司网站是什么设计师做鞋子网站模板
  • 洛阳哪家网站做的好网站建设河南
  • 旧笔记本 做网站网站开发工作好找吗
  • 门户地方网站 策略昆明网站建设方案托管
  • 做一个网站大概需要多少钱wordpress 商务主题
  • 建开发网站百度竞价排名广告定价鲜花
  • 哪个网站做海南二手房网站导航栏分析
  • 网站建设前台后台设计深圳需要做网站的公司有哪些
  • 学网站开发需要学什么优质企业网站建设
  • 网站空间太小银川市网站建设
  • 网站带支付源码怎么创建网站平台
  • 网站建设效益分析海珠区建网站公司
  • 国外做ui的网站j深圳平台网站建设