iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
Software Development

leetcode程式自學系列 第 20

Day20 leetcode程式自學

  • 分享至 

  • xImage
  •  

今天解的題目是第二十題valid parentheses ,這題的題目要求是判斷一個只包含括號字元的字串是否為有效括號。字串中可能出現三種類型的括號小括號 、中括號和大括號。所謂有效有三個條件。第一,每一個右括號必須有對應的左括號。第二,括號的類型必須匹配。第三,括號的出現順序必須正確,也就是說不能出現像 ([)] 這樣交錯錯誤的情況。如果括號符合規定或是空字串就回傳true ,如果不符合就回傳false 。程式邏輯的核心是利用堆疊來模擬括號的配對過程:首先建立一個hash 表將每個右括號映射到對應的左括號(如 ")": "(" ),然後初始化一個空堆疊來儲存待配對的左括號。接著逐一遍歷字符串中的每個字符,當遇到左括號時直接壓入堆疊等待後續配對;當遇到右括號時則進行配對檢查先檢查堆疊是否為空,再從堆疊頂部彈出最近的左括號,然後比對這個左括號是否與當前右括號的類型匹配,如果任一檢查失敗就立即返回 False。當字符串全部處理完畢後,最終檢查堆疊是否為空:若堆疊為空表示所有括號都完美配對返回 True,若堆疊中仍有元素則表示存在未配對的左括號返回 False。


上一篇
Day19 leetcode程式自學
下一篇
Day21 leetcode程式自學
系列文
leetcode程式自學21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言