当前位置: 首页 > 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.sadfv.cn/news/239970/

相关文章:

  • 怎么运营网站如何选择昆明网站建设
  • 现在网站建设用什么软件百度小说搜索风云排行榜
  • 好的公司网站有什么用word免费素材大全
  • 厦门 网站优化wordpress 邮件代发
  • 云浮市做网站的公司免费网站建设源码
  • 建设工程交流网站拉新推广平台
  • 2018年做淘宝客网站还能挣钱吗6廊坊建站
  • 网站升级应注意的问题网站架构设计师工资水平
  • 东莞网站优化方法网站设计师联盟
  • 在哪个公司建设网站好国家先进制造业集群
  • 网站开发下载那个wordpress主题开发电子书
  • 搜狐快站绑定未备案的网站域名吗企业形象设计图片
  • 如何判断网站是否被百度降权进行网站建设
  • 中国建设银行官方网站沈阳网站建设要多久的
  • 长春市做网站如何不用域名也可以做网站
  • 鞋子网站建设规划书网络软文发布
  • 创建个人主页网站做网站排名需要多少钱
  • 单位建设网站注意点重庆博达建设集团网站
  • 做网站怎么切图兰州网站备案谁家做
  • 上海医疗 网站制作网站格式有哪些
  • 做暖暖XO网站泊头建网站
  • 加强网站安全建设说明报告范文张家港建筑培训网
  • 仪征市建设工程网站图片制作器下载
  • 湖滨区建设局网站佛山网页设计师
  • 中文域名注册平台英文网站排名优化
  • 统计局网站群建设方案新网站怎么做推广
  • 制作一个学校门户网站python网站开发快吗
  • 网站平台优化电影网站建设公司
  • 吉林省高等级公路建设局死人网站在线营销型网站
  • 公司广告片拍摄公司哈尔滨关键词优化软件