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

中小型企业网站建设免费看片网站

中小型企业网站建设,免费看片网站,wordpress要求,08网站建设算法#xff1a; 其实这道题不用像上一道题一样#xff0c;用两个队列实现栈。 由于队列的数据结构特性。用一个队列就可实现栈。 难点还是在出队的时候#xff1a; 比如队列[1,2,3]#xff0c;要模拟一个栈入栈就是直接append#xff08;其实就是C中的push#xff0… 算法 其实这道题不用像上一道题一样用两个队列实现栈。 由于队列的数据结构特性。用一个队列就可实现栈。 难点还是在出队的时候 比如队列[1,2,3]要模拟一个栈入栈就是直接append其实就是C中的push出栈时应该先出3但是队列先出1此时可以先把1取出来再加入队列即[2,3,1]再把2取出来再加入队列即[3,1,2]这个时候再取出队首3也就模拟了出栈操作。 总结 只要将队列首部的元素除了最后一个元素外 重新添加到队列尾部此时再去弹出元素就是栈的顺序了。 为什么用栈实现队列的时候要用两个栈 因为栈底部是密封的只有上面敞口而队列前后都敞口。 所以队列可以实现“先从队首把1取出来再加入队列”的操作而栈要取数只能从最上面敞口的地方取。 Top算法 对于 Python 中的序列类型如列表、元组、字符串等可以使用负数索引来访问元素。负数索引表示从序列的末尾开始计数-1 表示最后一个元素-2 表示倒数第二个元素依此类推。 可以使用负数索引来访问队列的最后一个元素如self.que[-1]。 调试过程 Python普通的Queue或SimpleQueue没有类似于peek的功能         也无法用索引访问在实现top的时候较为困难。 用list可以但是在使用pop(0)的时候时间复杂度为O(n)         因此这里使用双向队列我们保证只执行popleft()和append()因为deque可以用索引访问可以实现和peek相似的功能 class MyStack:def __init__(self):self.que deque()def push(self, x: int) - None:self.que.append(x)def pop(self) - int:if self.empty():return Noneelse:for i in range(len(self.que)-1):self.que.append(self.que.pop())return self.que.pop()def top(self) - int:if self.empty():return Noneelse:return self.que[-1]def empty(self) - bool:return self.que# Your MyStack object will be instantiated and called as such: # obj MyStack() # obj.push(x) # param_2 obj.pop() # param_3 obj.top() # param_4 obj.empty() 原因 因为我的 empty 方法返回的是一个 deque 对象而预期的返回类型是布尔值。 为了解决这个问题可以将 empty 方法中的返回语句修改为 return not self.que。这样如果队列为空返回 True否则返回 False。 正确代码 class MyStack:def __init__(self):self.que deque()def push(self, x: int) - None:self.que.append(x)def pop(self) - int:if self.empty():return Noneelse:for i in range(len(self.que)-1):self.que.append(self.que.pop())return self.que.pop()def top(self) - int:if self.empty():return Noneelse:return self.que[-1]def empty(self) - bool:return not self.que 优化 Top里面的que[-1]实际上用到了栈因为直接获取了que的末尾元素。 其实可以类似pop函数将队列首部的元素除了最后一个元素外 重新添加到队列尾部此时再去弹出的元素就是栈的首了 不过要把这个“栈首”再加回队列里面因为top不改变栈。 比如队列[1,2,3]要模拟一个栈出栈时应该先出3但是队列先出1此时可以先把1取出来再加入队列即[2,3,1]再把2取出来再加入队列即[3,1,2]这个时候再取出队首3也就是top将其弹出再把这个3加入队列即[1,2,3]。其实没有改变栈的内容。 class MyStack:def __init__(self):self.que deque()def push(self, x: int) - None:self.que.append(x)def pop(self) - int:if self.empty():return Noneelse:for i in range(len(self.que)-1):self.que.append(self.que.pop())return self.que.pop()def top(self) - int:if self.empty():return Noneelse:for i in range(len(self.que)-1):self.que.append(self.que.pop())temp self.que.pop()self.que.append(temp)return tempdef empty(self) - bool:return not self.que# Your MyStack object will be instantiated and called as such: # obj MyStack() # obj.push(x) # param_2 obj.pop() # param_3 obj.top() # param_4 obj.empty()
http://www.dnsts.com.cn/news/80310.html

相关文章:

  • 网站 html5node.js 做网站
  • 慧聪网de网站建设策略网站开发环境和运行环境
  • 做网站备案什么意思wordpress影院主题
  • html5网站下载Python能开发WordPress
  • 网站开发所需费用明细怎么网站开发
  • 漂亮的网站单页建设银行个人网站
  • 浙江昆仑建设集团网站征婚网站建设
  • 专业做网站咨询旅游网站论文摘要
  • wap建站系统开源河北省建设监理协会网站
  • 环保网站建设方案商务网站的功能
  • 开发一个小网站多少钱wordpress模板文件修改插件
  • 中国购物网站排行榜住房和城乡建设部网站准考证
  • 电子网站搜索引擎怎么做互联网排名前十名的公司
  • 模板网站建设咨询建设部网站1667号
  • 网页设计版面划分网站seo优化软件
  • 有源码手机怎么搭建网站东莞推广就莞用服务平台
  • 郑州网站建设汉狮wordpress文章自动采集发布
  • 专业的聊城网站建设创建网站要多长时间
  • 西丽网站建设设计徐州专业网站制作
  • 网站建设需要桂ajax吗阿里云网站怎么备案域名
  • 国外网站备案吗修改WordPress文章发布模板
  • 游戏网站规划方案seo推广优势
  • 网站开发赚钱吗网站制作建设模板
  • 做视频网站免费观看爱郑州专业网站建设公司首选
  • 建设网站公司选哪家好网站在正在建设中
  • 专业中山建网站公司wordpress首页底部模板修改
  • 网站外链建设工作计划北京vi设计案例分析
  • 做网站没有按照合同履行淘宝代运营
  • 淄博网站制作定制升级福州建站服务管理
  • 措勤网站建设成都手机模板建站