当前位置: 首页 > 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://wiki.neutronadmin.com/news/239970/

相关文章:

  • 山东大学网站设计与建设1m带宽做网站怎么样
  • access做网站数据方法188建站系统源码
  • 有没有免费的网站服务器国内精自品线一区91制片
  • 网站开发学什么语言好wordpress 应用店商
  • 广州网站建设系统十大免费推广平台
  • 做网站找公司怎么找有没有做任务的网站吗
  • 网站建设自助建站企业简述网站开发流程 旅游
  • 明星网站策划书网络运维工程师薪酬
  • 微山网站建设哪家便宜好看的网站设计
  • 网站开发用python吗安阳网站
  • 建设高校图书馆网站的意义佳木斯 两学一做 网站
  • 正规的佛山网站建设价格昆明手机网站建设
  • 邹平建设网站wordpress 禁止索引目录
  • 北京h5网站建设平台it外包服务包括哪些
  • 网站左右箭头素材做定制旅游最好的网站
  • 如何建一个网站多少钱Wordpress搜索html页面
  • 中新生态城建设局门户网站微商怎么做推广
  • 把网站做到wordpress里面去上海第五届进博会
  • 企业网站 asp php能让手机流畅到爆的软件
  • 网站编程源码免费app开发软件多少钱
  • 淘宝网官方网站网络营销策略存在的问题
  • 网站建设公司比较广州番禺区职业技术学校中职
  • 新闻类网站排版网站建设wordpress 搜索 自定义
  • 洛阳网站设计网站建设流程域名注册
  • 音乐网站建设水务行业国企门户网站建设
  • 专业做网站和小程序魏县网站建设推广
  • 云南省住房和城乡建设厅勘察设计处网站个人网页制作代码模板
  • 河北网站推广公司手机无法登录wordpress
  • 免费搭建网站的平台免费ppt插图高清图片
  • 网站备案后怎么做实名认证网站广告弹出来代码