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

Day10 >> 232、用栈实现队列 + 225、用队列实现栈 + 20、有效的括号

代码随想录-栈

232、用栈实现队列

没有算法逻辑,就是考察对栈这个数据结构的操作,需要多加练习

class MyQueue { Stack<Integer> stackIn; Stack<Integer> stackOut; public MyQueue() { stackIn = new Stack<>(); stackOut = new Stack<>(); } public void push(int x) { stackIn.push(x); } public int pop() { dumpstackIn(); return stackOut.pop(); } public int peek() { dumpstackIn(); int result = stackOut.pop(); stackOut.push(result); return result; } public boolean empty() { if (stackIn.isEmpty() && stackOut.isEmpty()) { return true; }else { return false; } } private void dumpstackIn() { if (!stackOut.isEmpty()) return; while (!stackIn.isEmpty()) { stackOut.push(stackIn.pop()); } } } /** * Your MyQueue object will be instantiated and called as such: * MyQueue obj = new MyQueue(); * obj.push(x); * int param_2 = obj.pop(); * int param_3 = obj.peek(); * boolean param_4 = obj.empty(); */

225、用队列实现栈

这道题也是在考察对栈和队列的掌握情况,要注意队列的操作,不要与栈搞混了,需要多加练习。

class MyStack { Queue<Integer> queue; public MyStack() { queue = new LinkedList<>(); } public void push(int x) { queue.add(x); } public int pop() { revse(); return queue.poll(); } public int top() { revse(); int result = queue.poll(); queue.offer(result); return result; } public boolean empty() { return queue.isEmpty(); } private void revse() { int size = queue.size(); size--; while (size-- > 0) { queue.add(queue.poll()); } } } /** * Your MyStack object will be instantiated and called as such: * MyStack obj = new MyStack(); * obj.push(x); * int param_2 = obj.pop(); * int param_3 = obj.top(); * boolean param_4 = obj.empty(); */

20、有效的括号

这道题主要考察栈的数据结构特性,适用于解决有秩序要求、严格对称的一类匹配问题,重点要考虑清楚所有的不匹配场景,然后去有针对性的写处理代码,这样就很清晰,不容易乱。

class Solution { public boolean isValid(String s) { Stack<Character> st = new Stack<>(); for (char c : s.toCharArray()) { if (c == ')' && !st.isEmpty() && st.peek() == '(') { st.pop(); } else if (c == '}' && !st.isEmpty() && st.peek() == '{') { st.pop(); } else if (c == ']' && !st.isEmpty() && st.peek() == '[') { st.pop(); } else { st.push(c); } } return st.isEmpty(); } }

1047、删除字符串种的所有相邻重复项

这道题留着明天练习下

http://www.jsqmd.com/news/79790/

相关文章:

  • 8、BPF 追踪技术:从内核到用户空间的全面解析
  • 36、Linux内核中的同步原语:信号量与互斥锁详解
  • 9、BPF追踪数据可视化指南
  • 37、Linux内核中的读写信号量:原理与实现解析
  • 10、BPF 工具使用指南与技巧
  • 38、Linux内核中的同步原语与内存管理
  • 阶跃星辰双模型开源引爆AI圈:300亿参数视频生成+实时语音对话重构多模态技术边界
  • 2025-12-13:十六进制和三十六进制转化。用go语言,给定一个整数 n,先求它的平方并把该值用大写字母的 16 进制表示(符号位按需处理,数位使用 0–9 与 A–F),再求它的立方并将该值用大
  • 39、Linux内核内存管理:固定映射地址与ioremap解析
  • 40、Linux内核内存管理与控制组机制详解
  • 昆仑万维发布Skywork-SWE代码智能体基座模型,32B规模刷新仓库级修复能力纪录
  • 万象EXCEL应用(二十) Excel收入支出日记账台帐报表——东方仙盟炼气期
  • 重磅发布:Qwen3-VL-8B-Instruct-FP8模型震撼登场,开启多模态AI应用新纪元
  • 12、Linux 网络中的 BPF 应用与数据包过滤
  • 30亿参数打破性能桎梏:SmolLM3开放模型如何重塑轻量级AI应用生态
  • ollama v0.13.3 最新发布:新增模型与功能优化详细解读
  • 2.5亿参数破局多模态困境:ModernVBERT重塑视觉文档检索技术边界
  • GLM-4.5-Air横空出世:混合推理技术开启开源大模型商用新纪元
  • 论文阅读:AAAI 2026 Multi-Faceted Attack: Exposing Cross-Model Vulnerabilities in Defense-Equipped Vision
  • Unsloth Dynamic 2.0量化技术:重新定义大模型部署效率与精度边界
  • OpenAI发布Whisper Turbo模型:本地语音处理效率提升5.4倍,多语言翻译能力再突破
  • 智谱AI大模型全面免费开放:AI普惠时代正式开启
  • 终极百度网盘加速指南:免费实现快速下载的完整教程
  • 38、互联网邮件安全与Web服务器安全综合指南
  • Ring-1T重磅发布:万亿参数思维模型开启开源推理新纪元
  • 百度开源再放大招:ERNIE-4.5-VL-28B-A3B-Thinking颠覆多模态AI认知边界
  • 40、网站内容与安全全解析
  • 机器学习进阶<11>基于集成学习的多源数据融合的电商用户购买行为预测系统
  • 42、保障 Web 服务器安全:数据库访问、认证与访问控制全解析
  • 终极百度网盘下载解析工具:简单三步实现高速下载