news 2026/6/10 15:19:01

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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、删除字符串种的所有相邻重复项

这道题留着明天练习下

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:22:11

论文阅读:NAACL 2024 Self-Guard: Empower the LLM to Safeguard Itself

总目录 大模型相关研究&#xff1a;https://blog.csdn.net/WhiffeYF/article/details/142132328 LLM安全评估&#xff08;guard&#xff09;模型全景&#xff1a;主流开源方案对比与选型指南 https://arxiv.org/pdf/2310.15851 https://www.doubao.com/chat/333432311120079…

作者头像 李华
网站建设 2026/6/10 11:44:07

40、网站内容与安全全解析

网站内容与安全全解析 在网站运营过程中,会面临来自各种程序的访问,其中就包括机器人和蜘蛛程序。同时,网站内容的管理和安全保障也是至关重要的,下面将详细介绍相关内容。 机器人和蜘蛛程序处理 网站会收到一些来自名为机器人的程序的访问,部分机器人会为搜索引擎收集…

作者头像 李华
网站建设 2026/6/10 11:34:40

42、保障 Web 服务器安全:数据库访问、认证与访问控制全解析

保障 Web 服务器安全:数据库访问、认证与访问控制全解析 在当今数字化时代,Web 服务器的安全性至关重要。尤其是在涉及数据库访问、用户认证以及访问控制等方面,任何一个环节的疏忽都可能导致严重的安全问题。本文将深入探讨这些关键领域,为你提供全面的安全保障指南。 数…

作者头像 李华
网站建设 2026/6/7 11:08:57

55、使用 Tripwire 进行简单入侵检测技术指南

使用 Tripwire 进行简单入侵检测技术指南 在网络安全领域,入侵检测是保障系统安全的重要环节。Tripwire 作为一款强大的入侵检测工具,能够帮助我们及时发现系统文件的异常变化,有效防范潜在的安全威胁。本文将详细介绍 Tripwire 的下载、编译、安装、配置以及策略编辑等方面…

作者头像 李华
网站建设 2026/6/10 4:47:21

机器学习进阶<12>AdaBoost与梯度提升树

引言昨天刚忙完两件事&#xff1a;一是把集成学习的基础框架梳理成博客&#xff0c;二是收尾了一个基于集成学习的多源数据融合电商用户购买行为预测系统&#xff0c;顺手都发在了CSDN上。今天我们来讲一下Boosting和加法模型&#xff0c;也许大家刚学习这个内容时会有下面这个…

作者头像 李华