首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

LeetCode 20. 有效括號:棧的經典應用與 C++ 實現

     編輯:關於C++

題目描述

給定一個只包含 '(', ')', '{', '}', '[', ']' 的字符串,判斷括號是否有效。有效條件:左括號必須用相同類型的右括號閉合,且閉合順序正確。

核心思路:棧

掃描字符串,遇到左括號入棧;遇到右括號時,若棧為空或棧頂不匹配則無效;匹配則出棧。最終棧為空則有效。

算法流程圖解

輸入: "()[]{}"
掃描 '(' → 入棧 ['(']
掃描 ')' → 棧頂 '(' 匹配 → 出棧 []
掃描 '[' → 入棧 ['[']
掃描 ']' → 棧頂 '[' 匹配 → 出棧 []
掃描 '{' → 入棧 ['{']
掃描 '}' → 棧頂 '{' 匹配 → 出棧 []
棧空 → 有效

C++ 標準庫實現

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved