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

算法训练第十天

232. 用栈实现队列

代码:

class MyQueue(object):def __init__(self):self.arr1 = []self.arr2 = []def push(self, x):""":type x: int:rtype: None"""self.arr1.append(x)def pop(self):""":rtype: int"""if len(self.arr2)>0:return self.arr2.pop()while len(self.arr1)>0:self.arr2.append(self.arr1.pop())return self.arr2.pop()def peek(self):""":rtype: int"""if len(self.arr2)>0:return self.arr2[len(self.arr2)-1]while len(self.arr1)>0:self.arr2.append(self.arr1.pop())return self.arr2[len(self.arr2)-1]def empty(self):""":rtype: bool"""if len(self.arr1)==0 and len(self.arr2)==0:return Truereturn False# Your MyQueue object will be instantiated and called as such:
# obj = MyQueue()
# obj.push(x)
# param_2 = obj.pop()
# param_3 = obj.peek()
# param_4 = obj.empty()

225.用队列实现栈

代码:

class MyStack(object):def __init__(self):self.arr = []self.i = -1def push(self, x):""":type x: int:rtype: None"""self.arr.append(x)self.i+=1def pop(self):""":rtype: int"""while self.i>0:self.arr.append(self.arr.pop(0))self.i-=1t = self.arr.pop(0)if len(self.arr)==0:self.i=-1else:self.i = len(self.arr)-1return tdef top(self):""":rtype: int"""return self.arr[self.i]def empty(self):""":rtype: bool"""if len(self.arr)==0:return Truereturn False

20. 有效的括号

代码:

class Solution(object):def isValid(self, s):""":type s: str:rtype: bool"""str = list(s)stack = []for i in str:if len(stack)==0:stack.append(i)else:if i==')' and stack[len(stack)-1]== '(':stack.pop()elif i== '}'and stack[len(stack)-1]=='{':stack.pop()elif i== ']'and stack[len(stack)-1]=='[':stack.pop()else:stack.append(i)if len(stack)==0:return Truereturn False

1047. 删除字符串中的所有相邻重复项

代码:

class Solution(object):def removeDuplicates(self, s):""":type s: str:rtype: str"""my_list = []is_delete=Truestr = list(s)while is_delete:is_delete=Falsefor i in str:if len(my_list)==0:my_list.append(i)else:if i==my_list[len(my_list)-1]:my_list.pop()is_delete=Truecontinueelse:my_list.append(i)str = my_listmy_list=[]return ''.join(str)
http://www.xdnf.cn/news/12627.html

相关文章:

  • 分享5个免费5个在线工具网站:Docsmall、UIED Tool在线工具箱、草料二维码、图片在线压缩、表情符号
  • 【嵌入式设备】使用PICO7抓取CH341A读写EEPROM的IIC波形
  • 视频字幕质量评估的大规模细粒度基准
  • 使用cd4060倒计时控制继电器,防止摩托车漏电
  • day 27 装饰器函数
  • SQL进阶之旅 Day 20:锁与并发控制技巧
  • C#:发送一封带有附件的邮件
  • Android实现点击Notification通知栏,跳转指定activity页面
  • 华为云Flexus+DeepSeek征文|体验华为云ModelArts快速搭建Dify-LLM应用开发平台并创建自己的自定义聊天助手
  • MATLAB-电偶极子所产出的电磁场仿真
  • 黑马点评【基于redis实现共享session登录】
  • 六、Sqoop 导出
  • 自适应长度惩罚强化学习的高效推理
  • [学习]扩频码测距原理、实现与精度分析(仿真代码)
  • 使用Python和Scikit-Learn实现机器学习模型调优
  • gis geoserver 地图发布
  • 单片机的低功耗模式
  • AI Agent 架构设计:ReAct 与 Self-Ask 模式对比与分析
  • bat批量去掉本文件夹中的文件扩展名
  • Python 函数全攻略:函数进阶(生成器、闭包、内置函数、装饰器、推导式)
  • 6.6并发编程
  • 引起MySQL CPU 使用率过高常见因素和解决方案
  • Svelte 核心语法详解:Vue/React 开发者如何快速上手?
  • LeetCode刷题 -- 542. 【01 矩阵】最短距离更新算法实现(双向DP)
  • 粤龙庄新文化解释:龙腾南粤,酱蕴山河
  • 计算机网络第2章(下):物理层传输介质与核心设备全面解析
  • 手机号段数据库与网络安全应用
  • Java应用Flink CDC监听MySQL数据变动内容输出到控制台
  • 家政小程序开发——AI+IoT技术融合,打造“智慧家政”新物种
  • 腾讯 ovCompose 跨平台框架发布,几年后还会有人用吗?