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

代码随想录算法训练营第十天 | leetcode 232 225 20 1047

    1. 用栈实现队列
      整体思路:使用两个栈一个当作入栈,一个当作出栈,当队列需要出队列的时候,将入栈的元素,倒序放入出栈里面,对出栈进行pop操作即可,若需要获得队头元素,同理,执行出栈peek操作即可,判断队列是否为空要进行判断入栈和出栈里是否均为空
    1. 用队列实现栈
      解题思路:在加入元素时先将q1中的元素依次出栈压入q2,然后将新加入的元素压入q1,再将q2中的元素依次出栈压入q1
      public void push(int x) { while (q1.size() > 0) { q2.add(q1.poll()); } q1.add(x); while (q2.size() > 0) { q1.add(q2.poll()); } }
    1. 有效的括号
      解题思想:利用栈进行消消乐匹配,最后判断栈是否为空,不为空则不能完全匹配
      代码如下:class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for(char c:s.toCharArray()){ if(c==')'&&!stack.isEmpty()&&stack.peek()=='('){ stack.pop(); }else if(c=='}'&&!stack.isEmpty()&&stack.peek()=='{'){ stack.pop(); }else if(c==']'&&!stack.isEmpty()&&stack.peek()=='['){ stack.pop(); }else{ stack.push(c); } } if(stack.isEmpty()){ return true; }else{ return false; } } }
    1. 删除字符串中的所有相邻重复项
      解题思想:类似于上题的括号匹配,这里用队列,方便最后字符串的返回
      代码:class Solution { public String removeDuplicates(String S) { //ArrayDeque会比LinkedList在除了删除元素这一点外会快一点 //参考:https://stackoverflow.com/questions/6163166/why-is-arraydeque-better-than-linkedlist ArrayDeque<Character> deque = new ArrayDeque<>(); char ch; for (int i = 0; i < S.length(); i++) { ch = S.charAt(i); if (deque.isEmpty() || deque.peek() != ch) { deque.push(ch); } else { deque.pop(); } } String str = ""; //剩余的元素即为不重复的元素 while (!deque.isEmpty()) { str = deque.pop() + str; } return str; } }
http://www.hskmm.com/?act=detail&tid=26190

相关文章:

  • openJDK历史版本
  • 2025冲压件厂家权威推荐榜:冲压件/新能源冲压件/光伏冲压件/精密冲压件/异形冲压件/五金冲压件/铝冲压件/汽配冲压件/不锈钢冲压件/家具冲压件厂家公司精密制造与品质保障实力之选
  • 图解C++智能指针的循环引用
  • 国庆收心指南:用AI提示词工程解决节后综合征
  • CF1895F Fancy Arrays
  • 文件系统的全局结构
  • 2025.10.7
  • 自由型象棋分析程序
  • 前端HTML contenteditable 属性使用指南 - 教程
  • luogu P1648 看守
  • 题解:P11219 【MX-S4-T3】「yyOI R2」youyou 的序列 II
  • Seismic Unix 基础使用
  • 2025实验室净化厂家/实验室装修厂家/实验室建设厂家权威推荐榜:专业设计与洁净技术实力之选
  • 修改注册表,实现电脑小键盘开机自启(NumLock灯常亮)
  • 完整教程:nav2笔记-250603
  • Bartender打印乱序条码教程
  • 多Agent协作入门:基于A2A协议的Agent通信
  • 时尚产品需求预测与库存优化模型解析
  • 自制带得分和推荐走法的象棋视频
  • DP分析黑科技——闫氏DP分析法
  • MUGEN游戏引擎等一系列相关杂谈
  • # 20232313 2025-2026-1 《网络与系统攻防技术》实验一实验报告 - 20232313
  • 一生一芯学习:PA2:输入输出
  • vector使用中的一个小问题
  • OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering() - 指南
  • 2025.10.7——2绿
  • 完整教程:无人机避障——感知部分(Ubuntu 20.04 复现Vins Fusion跑数据集)胎教级教程
  • 我真的博了
  • 2025.10.6——1绿1蓝
  • 深入解析:人工智能-Chain of Thought Prompting(思维链提示,简称CoT)