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

胖哥网站的建设目标中国正国级名单

胖哥网站的建设目标,中国正国级名单,初级网站开发的自我推荐,企业网站建设亮点括号匹配问题和逆波兰表达式求值问题 基于上一节已经使用python代码对栈进行了简单的实现#xff0c;这一节我们在其基础上解决两个常见的问题 案例 括号匹配问题(点我直接到代码实现)逆波兰表达式求值问题(点我直接到代码实现) 括号匹配问题 在给定的字符串中#xff0…括号匹配问题和逆波兰表达式求值问题 基于上一节已经使用python代码对栈进行了简单的实现这一节我们在其基础上解决两个常见的问题 案例 括号匹配问题(点我直接到代码实现)逆波兰表达式求值问题(点我直接到代码实现) 括号匹配问题 在给定的字符串中编写程序实现确定该字符串类的括号是否匹配的问题 使用栈解决这个问题的思路 括号匹配python代码实现 from Structure.linear.Stack import Stackdef is_matched_brackets(_strNone):stack Stack()for s in _strs:# If the sub-str is (, push it into the stackif s (:stack.push(s)# If it is ), try to pop a ( from the stackelif s ):pop_a_left stack.pop()# If hadnt popped a (, return falseif not pop_a_left:return Falseif stack.len 0:return Truereturn False# _strs ()(Shanghai)(Changan))( # _strs ())( _strs (())() print(fIs the brackets matched in {_strs} ? {is_matched_brackets(_strs)})然后这里导入的Stack是上一节栈的实现写的代码也就使用到了pop和push的方法以及len属性代码量也不算很多我就直接复制过来了方便查看这里功能实现起来也是非常的简单就不做过多赘述来解释了。 class Node:def __init__(self, item):self.item itemself.next Noneclass Stack:def __init__(self):self.head Noneself.len 0def is_empty(self):return not self.len# def length(self):# return self.lendef push(self, item):Push an element into the stacknode Node(item)node.next self.headself.head nodeself.len 1def pop(self):Pop a value from the stack top# if not self.head:# raise IndexError(pop from empty list)cur self.headif self.head:self.head self.head.nextself.len - 1return cur逆波兰表达式 在定义逆波兰表达式求值问题之前我们先来看一下中缀表达式是什么 定义中缀表达式是一个通用的算术或逻辑公式表示方法二元运算符总是会在两个操作数的中间 举个栗子 例如1 3 * 2和2 - ( 1 3 )运算符( - * /)都是在两个值的中间 这种表达式虽然对于我们人类来说观看和使用起来都是非常简单的但是对于计算机并不太友好这是因为这种表达式并不是有顺序的在运算时还可能涉及到很多优先级顺序的判断 因此我们引入了中缀表达式转后缀表达式的概念这里的后缀表达式就是我们所说的逆波兰表达式 简介逆波兰式Reverse Polish notationRPN或逆波兰记法也叫后缀表达式将运算符写在操作数之后 逆波兰表达式的定义描述看起来晦涩难懂简单的说就是将运算符写在操作数之后的表达式对定义描述感兴趣的同学可以自行百度一下这里我们用几个例子直观的感受一下 通过结果看转换前的状态会比较好理解 a b → ab先看操作符一个操作符对应两个值加号对应a 和 b相加得到aba (b - c) → abc-先看操作符一个操作符对应两个值减号-对应离他最近的bc因此先计算b - c再看加号也对于两个值就是a 和 (b - c)因此为 a (b - c)a (b -c) * d → abc-d*先看操作符秉承操作运算的先后顺序减号-对应b - c然后乘号*对应的是(b - c)*d最后加号对应的也是两个值a 和 (b - c)*d相加即可得到a (b - c) * da * (b - c) d → abc-*d同样以操作符为中心寻找数字减号-对应b 和 c相减得到(b - c)乘号*对应a 和 (b - c)相乘得到a * (b - c)加号对应a * (b - c)和 d相加得到结果 a * (b - c) d 代码实现思路 如果当前字符为变量或者为数字则压栈如果是运算符则将栈顶两个元素弹出作相应运算结果再入栈最后当表达式扫描完后栈里的就是结果。 实现流程图 python代码实现 这里先要写一个实现栈的类方法也可以参照前期的栈实现文章 class Node:def __init__(self, item):self.item itemself.next Noneclass Stack:def __init__(self):self.head Noneself.len 0def is_empty(self):return not self.len# def length(self):# return self.lendef push(self, item):Push an element into the stacknode Node(item)node.next self.headself.head nodeself.len 1def pop(self):Pop a value from the stack top# if not self.head:# raise IndexError(pop from empty list)cur self.headif self.head:self.head self.head.nextself.len - 1return curfrom Structure.linear.Stack import Stackdef reverse_polish_notation(_strs):nums Stack()for s in _strs:if s not in [, -, *, /]:nums.push(s)else:num1 nums.pop().itemnum2 nums.pop().item# This equals to num2 [-*/] num1res eval(str(num2)sstr(num1))nums.push(res)return nums.pop().item# 2*(18-13)-12/4 2*5 - 3 7 _strs 2, 18, 13, -, *, 12, 4, /, - result reverse_polish_notation(_strs) print(fThe computation of {_strs} is {2*(18-13)-12/4}) print(fThe result is {result})运行结果 The computation of (2, 18, 13, -, *, 12, 4, /, -) is 7.0 The result is 7.0实现过程比较简单就不过多赘述了
http://www.pierceye.com/news/586505/

相关文章:

  • 有没有可以做app的网站wordpress代码转义
  • 电子商务网站开发的任务书wordpress图片间距
  • 石家庄集团网站建设哪些网站可以做微信
  • 网站文件夹名平台期什么意思
  • 怎么用vps做网站论坛网站建设视频
  • 广州网站制作实力乐云seowordpress 评论模块
  • 永久免费制作网站木门行业做网站有什么好处
  • 怎么区分模板网站wordpress菜单怎么建
  • 网站开发最新效果企业手机网站建
  • 网站群管理系统哪个好wordpress制作会员功能
  • 做套现网站网站的访问量
  • 做网站网页需要学些什么做网站学的什么专业
  • 建设银行的官方网站纪念币公司宣传页设计印刷
  • 网站左侧图片悬浮代码常州工厂网站建设
  • 智慧团建网站怎么转团关系app制作开发小程序制作开发
  • 誉字号网站wordpress 展示模板下载
  • 网站不接入备案成都市建设工程质量协会网站
  • 企业网站html网站开发济南招聘
  • 网站html优化方法音乐网站开发参考文献
  • 网站建设及推广方案ppt模板微信小程序开发工具下载哪个版本
  • 固安县城乡和住房建设局网站科技公司手机端网站
  • 寿光网站建设思科企业网络拓扑图
  • 中国建设银行河南省分行网站建筑人才服务中心官网
  • 响应式app网站模板单页淘宝客网站2014年行吗
  • 西安网站推广优化高端定制网站开发设计建站流程
  • m版网站开发公司如何做网络推广营销
  • 济宁商城网站开发设计网址源码在线查看
  • 网站建设公司介绍百度电脑怎么用wordpress
  • 宛城区网站建设广东seo推广方案
  • 北京建网站定制价格网站风格总结