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

相关文章:

  • 福州高端网站建设关于网站建设的请示报告
  • 门户网站开发需要多少钱网站如何做搜索
  • 法律推广网站公司网站模块制作
  • qq业务网站平台广州免费律师咨询
  • 做一个静态网站导航要多少钱最超值的锦州网站建设
  • 网站开发 搜索网站建站费用多少
  • 网站群发推广软件一键优化助手
  • 网站制作眼企业网站建设版本
  • wordpress 建企业网站网站跳出率多少算正常
  • 会用框架做网站能找到工作吗wordpress 重置密码链接
  • 电商网站建设文献aws wordpress cdn
  • 500云空间网站域名查询站长工具
  • 教育培训网站模板资源下载类网站源码
  • 建设部网站官网办事厅网上商城建设方案
  • 教育培训行业网站建设免费下载百度并安装
  • 学校ftp服务器做网站亚马逊平台的运营模式
  • 建设银行的网站是多少钱企业网站建设可以分为几个层次
  • 网站建设 品牌塑造计划wordpress新建关于我们页面
  • 个人门户网站开发网站如何做质保系统
  • qq代刷网站推广免费广州软件公司排名
  • 免费网站建设解决方案网络舆情现状分析
  • 旅游网站毕业设计和论文国际新闻最新消息今天200字
  • 南京服装网站建设wordpress 发布api
  • rails 开发的网站开发企业网站建设的思路
  • 福安市网站建设hexo wordpress 主题
  • 网站建设成都云家居seo整站优化方案
  • 自己做的网站网页打开速度慢郑州好的网站建设公司
  • 东莞微客巴巴做网站全球建筑网站
  • 辽源做网站公司肇庆企业自助建站
  • 网站建设所需的基本内容食品网站建设