棧----1.有效的括號

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

/**

? ? ? ? 括號特性:

? ? ? ? ? ? ? ? 左括號必定先出現,每個左括號都需要一個右括號與之匹配,后出現的左括號先匹配

? ? ? ? 解法:

? ? ? ? ? ? ? ? 依據后出現的左括號先匹配,很容易聯想到棧,即后進先出

? ? ? ? ? ? ? ? 遍歷字符串,遇到左括號就在棧中添加一個對應的右括號

? ? ? ? ? ? ? ? 遇到右括號就彈出棧頂元素判斷是否一致(當前遍歷到的最后一個出現的左括號是否能閉合)

? ? ? ? ? ? 不合法: ? ?

? ? ? ? ? ? ? ? 若彈出的右括號與遇到的右括號不一致---> 左右類型不匹配,不合法

? ? ? ? ? ? ? ? 若遇到右括號時棧中無元素可彈出---> 右括號多余無法閉合,不合法

? ? ? ? ? ? ? ? 若字符串遍歷結束棧中仍有元素---> 左括號多余無法閉合,不合法

*/

class Solution {/**括號特性:左括號必定先出現,每個左括號都需要一個右括號與之匹配,后出現的左括號先匹配解法:依據后出現的左括號先匹配,很容易聯想到棧,即后進先出遍歷字符串,遇到左括號就在棧中添加一個對應的右括號遇到右括號就彈出棧頂元素判斷是否一致(當前遍歷到的最后一個出現的左括號是否能閉合)不合法:    若彈出的右括號與遇到的右括號不一致---> 左右類型不匹配,不合法若遇到右括號時棧中無元素可彈出---> 右括號多余無法閉合,不合法若字符串遍歷結束棧中仍有元素---> 左括號多余無法閉合,不合法*/public boolean isValid(String s) {//利用雙端隊列模擬棧Deque<Character> stack = new ArrayDeque<>();//按規則遍歷字符串for(char c : s.toCharArray()) {//將對應的右括號入棧if(c == '(') {stack.push(')');} else if(c == '[') {stack.push(']');} else if(c == '{') {stack.push('}');}//遇到右括號,判斷是否合法else {//右括號多余或左右類型不匹配 不合法if(stack.isEmpty() || stack.pop() != c) {return false;}}}//左括號多余if(!stack.isEmpty()) {return false;}return true;}
}

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

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

相關文章

數據報表怎么自動填寫內容?總結了幾個方法

你有沒有遇到過這種情況&#xff1f;月底趕銷售報告&#xff0c;Excel里密密麻麻的數據要往Word里搬&#xff0c;光是復制粘貼就折騰半小時&#xff0c;好不容易搞完&#xff0c;老板突然說數據有更新…得&#xff0c;全白干&#xff01;更崩潰的是&#xff0c;這種重復勞動每個…

構造函數是否可以聲明成虛函數?

構造函數&#xff08;constructor&#xff09;不能被聲明為虛函數。? 原因解釋 構造函數的主要職責是創建并初始化對象本身&#xff0c;而虛函數機制是基于 虛表指針&#xff08;vptr&#xff09; 的&#xff0c;它只有在對象構造完成之后才會起作用。 所以&#xff1a; 在構造…

【Rust線程池】如何構建Rust線程池、Rayon線程池用法詳細解析

?? 歡迎大家來到景天科技苑?? &#x1f388;&#x1f388; 養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者簡介&#xff1a;景天科技苑 &#x1f3c6;《頭銜》&#xff1a;大廠架構師&#xff0c;華為云開發者社區專家博主&#xff0c;…

CAN總線網絡的參數協同:從一致性要求到容差邊界

CAN總線網絡的參數協同&#xff1a;從一致性要求到容差邊界 一、引言&#xff1a;CAN總線的“隱形契約”二、CAN通信的核心參數&#xff1a;不止于波特率三、參數一致性的必要性&#xff1a;為何波特率相同仍會失敗&#xff1f;四、容差范圍的科學界定&#xff1a;從理論計算到…

Activity 啟動模式

如何指定 Activity 的啟動模式&#xff1f;在 AndroidMainfest.xml 中通過給 <activity> 標簽指定 android:lauchMode 來選擇啟動模式。4種啟動模式standard&#xff08;默認&#xff09;&#xff1a;每當啟動一個 Activity&#xff0c;都會創建一個新的實例壓入返回棧。…

7·22勝算云AI日報:OpenAI再擴容且與英國政府簽訂三年AI計劃、字節GR-3、微軟Culture計劃、國數局數據基地

OpenAI Oracle&#xff1a;4.5 GW「Stargate II」再擴容&#xff0c;AI 電力版圖重排 7 月 22 日&#xff0c;OpenAI 與 Oracle 聯合公布“Stargate II”計劃&#xff1a;雙方將在美國多地追加 4.5 GW 超算級電力與冷卻配套&#xff0c;使 Stargate 系列園區總規模躍升至 5 GW…

【優選算法】鏈表

目錄鏈表常用的技巧和操作1、常用技巧2、常用操作一、[兩數相加](https://leetcode.cn/problems/add-two-numbers/description/)二、[兩兩交換鏈表中的節點](https://leetcode.cn/problems/swap-nodes-in-pairs/description/)三、[重排鏈表](https://leetcode.cn/problems/reor…

制造業新突破:AR 培訓系統助力復雜操作輕松上手?

在制造業&#xff0c;生產設備復雜、操作流程繁瑣&#xff0c;新員工掌握操作技能不易。比如汽車制造企業的發動機裝配環節&#xff0c;涉及眾多精密零部件安裝&#xff0c;對安裝順序、位置精度要求嚴格&#xff0c;一點小失誤都可能影響發動機性能甚至引發質量問題。過去新員…

《計算機網絡》實驗報告八 加密、數字簽名與證書

目 錄 1、實驗目的 2、實驗環境 3、實驗內容 3.1 對稱加密 3.2 散列函數 3.3 非對稱加密 3.4 數字簽名 3.5 證書 4、實驗結果與分析 4.1 對稱加密 4.2 散列函數 4.3 非對稱加密 4.4 數字簽名 4.5 證書 5、實驗小結 5.1 問題與解決辦法&#xff1a; 5.2 心得體…

MySQL(157)如何分析和優化存儲過程?

分析和優化存儲過程是數據庫性能優化的重要環節。通過對存儲過程進行分析和優化&#xff0c;可以提高數據庫操作的執行效率&#xff0c;減少資源消耗&#xff0c;改善系統整體性能。以下是詳細的步驟和代碼示例&#xff0c;介紹如何分析和優化 MySQL 存儲過程。 一、分析存儲過…

基于深度學習的胸部 X 光圖像肺炎分類系統(一)

本文先重點介紹了過采樣的原理是實現。 由于醫學數據相對缺乏&#xff0c;過采樣是解決數據問題的方法之一。 后續寫一篇搭建神經網絡的說明 目錄 概述 導入必要的庫 數據加載和預處理函數 處理樣本不均衡函數 構建改進的 CNN 模型函數 主函數 數據生成器generator&…

【PGCCC】在 Postgres 中構建復制安全的 LSM 樹

在原生 Postgres 實現中&#xff0c;全文搜索由B 樹或GIN&#xff08;廣義倒排索引&#xff09;結構支持。這些索引針對相對快速的查找進行了優化&#xff0c;但受限于 B 樹的寫入吞吐量。 當我們構建pg_searchPostgres 搜索和分析擴展時&#xff0c;我們的優先級有所不同。為了…

架構如鐘擺:在變與不變之間優雅平衡

在當今數字轉型浪潮中&#xff0c;企業在“快速創新”與“長期穩定”之間反復拉扯。是否應該重建所有架構以適應AI&#xff1f;又是否該死守傳統系統確保安全與合規&#xff1f;在The Open Group阿姆斯特丹峰會上&#xff0c;凱捷全球 CTO Ron Tolido 借用了一個極具畫面感的比…

LLM中的位置嵌入矩陣(Position Embedding Matrix)是什么

LLM中的位置嵌入矩陣(Position Embedding Matrix)是什么 在大語言模型(LLM)中,位置嵌入矩陣(Position Embedding Matrix) 是用來表示輸入序列中每個詞的位置信息的矩陣。它的核心作用是:讓模型能夠區分“相同詞在不同位置的語義差異”(比如“貓喜歡魚”中的“貓”和“…

國產DevOps平臺Gitee:如何重塑中國企業研發效能新格局

國產DevOps平臺Gitee&#xff1a;如何重塑中國企業研發效能新格局 在全球數字化轉型浪潮中&#xff0c;軟件研發效率已成為企業競爭力的核心指標。作為中國最大的代碼托管平臺&#xff0c;Gitee正通過其全棧式DevOps解決方案&#xff0c;助力中國企業突破研發效能瓶頸&#xff…

告別混亂!【Java Web】項目分層架構全指南:核心三層 + 關鍵輔助包詳解

目錄 1.前言 2.正文 2.1為什么要分層 2.2核心三層詳解 2.2.1Controller層&#xff08;表現層/API層&#xff09; 2.2.2Service層&#xff08;業務邏輯層&#xff09; 2.2.3DAO層&#xff08;持久層&#xff09; 2.3. 核心關系與數據流轉&#xff1a;分層架構的交互邏輯…

解決Docker Compose報錯

解決Docker Compose報錯&#xff1a;exec ./entrypoint.sh: no such file or directory在使用Docker Compose部署應用時&#xff0c;你是否遇到過exec ./entrypoint.sh: no such file or directory這個令人頭疼的錯誤&#xff1f;本文將深入分析錯誤原因并提供多種解決方案&…

【element plus】el-select,allow-create不需要點回車鍵

<el-selectv-model"row.expertName"filterableremoteallow-createdefault-first-optionreserve-keywordplaceholder"請輸入姓名":remote-method"remoteMethod":loading"loadingName"change"(val) > handleNameChange(row, …

RK3588 HDMI-RX 驅動、RGA 加速與 OpenCV GStreamer 支持完整指南

一、環境檢測與前置依賴 確認內核與 HDMI-RX 節點&#xff1a; uname -a # 輸出&#xff1a;6.1.0-1025-rockchip ...dmesg | grep -i hdmirx # 應能看到 hdmirx-controller 節點&#xff1a; # fdee0000.hdmirx-controller driver probe ok!如果僅出現&#xff1a; rockchi…

AS32A601芯片QSPI 調試技術解析與與實戰經驗分享

一、概述&#xff08;一&#xff09;QSPI 簡介QSPI&#xff08;Quad Serial Peripheral Interface&#xff09;是一種高速串行通信接口&#xff0c;在標準 SPI&#xff08;Serial Peripheral Interface&#xff09;的基礎上擴展至 4 條數據線&#xff08;Quad Mode&#xff09;…