当前位置: 首页 > 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.zskr.cn/news/16928.html

相关文章:

  • 国庆收心指南:用AI提示词工程解决节后综合征
  • 2025.10.7
  • 多Agent协作入门:基于A2A协议的Agent通信
  • MCP gateway
  • 转战web3远程工作的英语学习的路线规划 - 教程
  • 我的联想小新潮7000笔记本的优化
  • 详细介绍:【学习笔记】TCP 与 UDP
  • 一些数数杂题
  • 实验1 c语言
  • QBXT2025S刷题 Day6题
  • 【开源工具】基于PyQt5工作时长计算器工具开发全解析 - 教程
  • Gitlab Runner 学习
  • TypeScript装饰器 - Ref
  • 【笔记】排列与组合学习笔记
  • 【高级数据结构】线段树
  • PCIe扫盲——物理层逻辑部分基础(二)
  • 前沿仿真未来趋势
  • rsync基本命令和用法
  • XMind 2025 破解版下载及安装使用教程
  • 二分图最大匹配 Dinic/EK算法
  • 爱,在行动中生长,我们因爱而变得辽阔——《岛上书店》读后感
  • 《二千年间》在线阅读
  • 实用指南:Java 单例模式详解
  • 数据结构与算法学习笔记(Acwing 提高课)----动态规划树形DP - 详解
  • CCPC2023哈尔滨 游记(VP)
  • 【OpenGL ES】Windows上OpenGL环境搭建
  • 状态压缩 DP
  • QGIS开发笔记(四):QgsRasterLayer加载Cesium二维地图的瓦片地图数据到QGIS
  • [数学 - 线性回归]
  • 基于Python+Vue开发的大学竞赛报名管理系统源码+运行步骤