【代碼隨想錄|232.用棧實現隊列、225.用隊列實現棧、20.有效的括號、1047.刪除字符串中的所有相鄰重復項】

232.用棧實現隊列

timutimtit232. 用棧實現隊列 - 力扣(LeetCode)

class MyQueue {
public:stack<int> Sin;stack<int> Sout;MyQueue() {}void push(int x) {Sin.push(x);}int pop() {if (Sout.empty()) { // 出棧為空就把入棧的數導出來while (!Sin.empty()) { // 直到入棧為空Sout.push(Sin.top());Sin.pop();}}int res = Sout.top();Sout.pop();return res;}int peek() {int res = this->pop(); // 這里是自己的指針調用pop函數,所以用->Sout.push(res);return res;}bool empty() {return Sin.empty() && Sout.empty();}
};/*** 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();* bool param_4 = obj->empty();*/

225.用隊列實現棧

題目鏈接:225. 用隊列實現棧 - 力扣(LeetCode)

class MyStack { // 用一個棧實現
public:queue<int> que;MyStack() {}void push(int x) {que.push(x);}int pop() {int size = que.size() - 1; // 只留隊列中最后一個元素進行返回while (size--) {que.push(que.front());que.pop();}int result = que.front();que.pop();return result;}int top() {int res = this->pop();que.push(res);return res;}bool empty() {return que.empty();}
};
class MyStack { // 用兩個棧實現
public:queue<int> que1;queue<int> que2;MyStack() {}void push(int x) {que1.push(x);}int pop() {int size = que1.size();size--;while (size--) {que2.push(que1.front());que1.pop();}int result = que1.front();que1.pop();que1=que2;while (!que2.empty()) {que2.pop();}return result;}int top() {int result = this->pop(); // 功能復用que1.push(result);return result;}bool empty() {return que1.empty();//第二個隊列總為空,檢查第一個隊列就行}
};

20.有效的括號

20. 有效的括號 - 力扣(LeetCode)

class Solution {
public:bool isValid(string s) {stack<int> st;if (s.size() % 2 != 0)return false;for (int i = 0; i < s.size(); i++) {if (s[i] == '(')st.push(')');else if (s[i] == '[')st.push(']');else if (s[i] == '{')st.push('}');else if (st.empty() || st.top() != s[i])return false;elsest.pop();}return st.empty(); // 不是直接return true,完全匹配完才return true}
};

1047.刪除字符串中的所有相鄰重復項

題目鏈接:1047. 刪除字符串中的所有相鄰重復項 - 力扣(LeetCode)

class Solution { // 用棧來實現
public:string removeDuplicates(string S) {stack<int> st;for (char s:S) {if(st.empty() || s != st.top()) {st.push(s);}else{st.pop();}}string result = "";while (!st.empty()) {result += st.top();st.pop();}reverse(result.begin(), result.end());return result;}
};
class Solution { // 用字符串當棧來用
public:string removeDuplicates(string S) {string result;for (char s:S) {if(result.empty() || s != result.back()) {result.push_back(s);}else{result.pop_back();}}return result;}
};

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92534.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92534.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92534.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

碼上爬第三題【協程+瀏覽器調試檢測】

前言&#xff1a;圖靈第三題就是對用戶瀏覽器調試檢測&#xff0c;檢測鼠標右擊打開控制臺&#xff0c;檢測鍵盤按鍵ctrlshifti&#xff0c;從瀏覽器設置打開開發者工具也不行&#xff0c;應該是有瀏覽器寬高檢測的&#xff0c;所以我們保證瀏覽器頁面寬高不變即可。你如果想右…

windows、linux應急響應入侵排查

windows入侵排查 1.1檢查賬號 1.查看服務器是否有弱口令&#xff0c;遠程管理端口是否對公網開放 2.查看服務器是否存在可疑賬號、新增賬號 檢查方法&#xff1a;打開 cmd 窗口&#xff0c;輸入 lusrmgr.msc 命令&#xff0c;查看是否有新增/可疑的賬號&#xff0c;如有管…

11. 為什么要用static關鍵字

11. 為什么要用static關鍵字 static&#xff1a;通常來說&#xff1a;在new一個對象的時候&#xff0c;數據存儲空間才會被分配&#xff0c;方法才能被外界使用。但是有時只想單獨分配一個存儲空間&#xff0c;不考慮需要創建對象或不創建對象&#xff0c;在沒有對象的情況下也…

[Oracle] MAX()和MIN()函數

MAX() 和 MIN() 是 Oracle 常用的聚合函數&#xff0c;用于從一組值中找出最大值和最小值1.MAX()函數MAX()函數返回指定列或表達式中的最大值語法格式MAX(expression)參數說明expression&#xff1a;可以是列名、計算列或表達式示例-- 返回employees表中salary列的最大值 SELEC…

網絡資源模板--基于Android Studio 實現的麻雀筆記App

目錄 一、測試環境說明 二、項目簡介 三、項目演示 四、部設計詳情&#xff08;部分) 添加頁面 五、項目源碼 一、測試環境說明 電腦環境 Windows 11 編寫語言 JAVA 開發軟件 Android Studio (2020) 開發軟件只要大于等于測試版本即可(近幾年官網直接下載也可以)&…

96-基于Flask的酷狗音樂數據可視化分析系統

基于Flask的酷狗音樂數據可視化分析系統 &#x1f4cb; 目錄 項目概述技術棧系統架構功能特性數據庫設計核心代碼實現數據可視化部署指南項目總結 &#x1f3af; 項目概述 本項目是一個基于Flask框架開發的酷狗音樂數據可視化分析系統&#xff0c;旨在為用戶提供音樂數據的…

Java基礎-紅包雨游戲-多線程

目錄 案例要求&#xff1a; 實現思路&#xff1a; 代碼&#xff1a; Employee RedPacket RedPacketRain 總結&#xff1a; 案例要求&#xff1a; 實現思路&#xff1a; 創建一個員工類,id和搶到的金額&#xff0c;創建一個紅包類&#xff0c;里面就是金額&#xff0c;創…

[激光原理與應用-203]:光學器件 - 增益晶體 - 增益晶體的使用方法

增益晶體是激光器的核心元件&#xff0c;其作用是通過受激輻射放大光信號。正確使用增益晶體需綜合考慮晶體選型、光路設計、熱管理、泵浦方式及安全防護等關鍵環節。以下是增益晶體的詳細使用方法及注意事項&#xff1a;一、晶體選型&#xff1a;根據需求匹配參數材料選擇Nd:Y…

?什么是抽象主義人工智能??

什么是抽象主義人工智能&#xff1f; 傳統的人工智能分為符號主義和連接主義兩個派別&#xff0c;后來又增加了行為主義。 我發現符號主義和連接主義處理的都是文本&#xff0c;而不是語義。原來的專家系統是符號主義的產物。現在的大語言模型是連接主義的產物。它們處理的都…

OpenSpeedy綠色免費版下載,提升下載速度,網盤下載速度等游戲變速工具

下載地址獲取點擊這里打開&#xff1a;OpenSpeedy 簡單介紹OpenSpeedy 是一款開源免費的游戲變速工具&#xff08;對某些網盤或者其他的一些下載也可進行加速&#xff09;&#xff0c;讓你的游戲突破幀率限制&#xff0c;提供更流暢絲滑的游戲加速體驗。1、完全免費且開源2、簡…

Windows 電腦遠程訪問,ZeroTier 實現內網穿透完整指南(含原理講解)

&#x1f9ed; 一、目標場景說明 想從安卓移動端遠程到Windows電腦 實現如下效果&#xff1a; 家中 Windows 電腦開機聯網&#xff1b;安卓手機/平板在外地&#xff0c;只要聯網就能遠程控制電腦桌面&#xff1b;不需要公網 IP&#xff0c;不用設置端口映射&#xff1b;免費…

解決本地連接服務器ollama的錯誤

1. 服務器 ollama 安裝 $ curl -fsSL https://ollama.com/install.sh | sh >>> Cleaning up old version at /usr/local/lib/ollama >>> Installing ollama to /usr/local >>> Downloading Linux amd64 bundle ##################################…

詳解Windows(十四)——PowerShell與命令提示符

詳解Windows&#xff08;十四&#xff09;——PowerShell與命令提示符 一、Windows命令行工具概述 1. 什么是命令行界面(CLI) 命令行界面&#xff0c;簡稱CLI&#xff08;Command Line Interface&#xff09;&#xff0c;是一種通過輸入文字命令來操作電腦的方式。與我們熟悉…

Spring源碼解析 - SpringApplication 屬性-初始化initializers, listeners -Spring提供的鉤子函數

初始化源碼 public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) {~~~setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));setListeners((Collection) getSpringFactoriesInstances(A…

簡單聊聊PowerShell

1、powershell和cmdpowershell簡單來說也是一個控制終端&#xff0c;他也經常拿出來和windows自帶的CMD來進行對比。windows系統一般來說這兩者都是自帶的。雖然cmd平時大家用的最多&#xff0c;但他是非常古老的&#xff0c;可以用來執行簡單的批處理文件&#xff0c;如.bat等…

Spring系列之Spring AI入門

概述 GitHub&#xff0c;官網&#xff0c;目前最新版是1.0.1。 功能&#xff1a; 跨AI提供商的可移植API&#xff1a;用于聊天、文本到圖像和嵌入模型。支持同步和流API選項。還支持下拉訪問模型特定功能。跨Vector Store提供商的可移植API&#xff0c;包括同樣可移植的新穎…

ELK常見的問題

ELK 棧在使用過程中會遇到各種問題&#xff0c;以下是常見問題分類及解決方案&#xff0c;涵蓋 ?Elasticsearch、Logstash、Kibana 和 Beats&#xff08;如 Filebeat&#xff09;?? 四大組件&#xff1a; &#x1f6a8; ?一、連接與通信問題? 1. ?Elasticsearch 拒絕連接…

物理AI與人形機器人:從實驗室到產業化的關鍵跨越

2025年8月9日&#xff0c;北京——世界機器人大會&#xff08;WRC&#xff09;的開幕成為物理AI與機器人技術發展的集中展示場。英偉達在大會預告中首次提出“物理AI將重塑50萬億美元市場”的論斷&#xff0c;涵蓋工業制造、醫療、低空經濟等領域。與此同時&#xff0c;宇樹科技…

使用 Vuepress + GitHub Pages 搭建項目文檔(2)- 使用 GitHub Actions 工作流自動部署

在上一篇文章中&#xff0c;我們已經成功用 VuePress 搭建了項目文檔&#xff0c;并使用 sh 腳本部署到了 GitHub Pages。 但隨著文檔的更新頻率增加&#xff0c;每次都要手動推送&#xff0c;那有沒有不需要手動推送的方法呢&#xff1f;那必須有。 這次我們將用 GitHub Actio…

Python爬蟲實戰:研究PSpider框架,構建電商數據采集和分析系統

一、引言 1.1 研究背景 在大數據時代,數據已成為驅動科技創新、商業決策和社會發展的核心資源。據 IDC 預測,全球數據量將從 2020 年的 64ZB 增長至 2025 年的 175ZB,其中互聯網公開數據占比超過 60%。如何從海量網絡信息中高效、精準地提取有價值的數據,成為學術界和工業…