[Leetcode] 20. Valid Parentheses

更新於 發佈於 閱讀時間約 3 分鐘

題目 : 20. Valid Parentheses

Given a string s containing just the characters '('')''{''}''[' and ']', determine if the input string is valid.

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  2. Open brackets must be closed in the correct order.
  3. Every close bracket has a corresponding open bracket of the same type.


Example 1:

Input: s = "()"
Output: true

Example 2:

Input: s = "()[]{}"
Output: true

Example 3:

Input: s = "(]"
Output: false


  1. Michelle小梦想家參考解答

lookup : 建立(){}[]符號的字典

stack : 將讀進來的左括號暫存在這邊,用堆疊的方式存取

item : 目前讀到s的字元

line 8 : 如果讀取到的字元是lookup中的Key

line 9 : 用append()將item堆疊至stack容器中

line 10 : 如果這時候的stack沒有任何字元,代表沒有可以對應的左括號 -> False

用pop()方法將stack的最後一個字元讀取出來,並移除列表中的最後一個元素

如果最後一個元素在lookup中所對應的右括號和item不相同 -> False

line 12 : 如果直接回傳True可能會判斷錯誤,ex : s="["

所以要在最後return的時候判斷stack是否是清空的狀態

class Solution:
def isValid(self, s: str) -> bool:

lookup = {"(":")","{":"}","[":"]"}
stack = []

for item in s:
if item in lookup: # ({[
stack.append(item)
elif len(stack)==0 or lookup[stack.pop()] != item: # )}]
return False
return len(stack)==0 # s="["



留言
avatar-img
留言分享你的想法!
avatar-img
Youna's Devlog
7會員
49內容數
這裡會放一些我寫過的 Leetcode 解題和學習新技術的筆記
Youna's Devlog的其他內容
2024/02/13
題目 : 121. Best Time to Buy and Sell Stock
Thumbnail
2024/02/13
題目 : 121. Best Time to Buy and Sell Stock
Thumbnail
2024/01/11
題目 : 100. Same Tree
Thumbnail
2024/01/11
題目 : 100. Same Tree
Thumbnail
2024/01/11
題目 : 83. Remove Duplicates from Sorted List
Thumbnail
2024/01/11
題目 : 83. Remove Duplicates from Sorted List
Thumbnail
看更多
你可能也想看
Thumbnail
題目會給定一個字串s,裡面都是由()*打散交錯而成。 配對規則 左括弧 ( 可以和 右括弧 ) 配對,其中 左括弧一定要在右括弧的左邊。 左括弧 ( 也可以和 *星號 配對,其中 左括弧一定要在*星號的左邊。 問我們給定的輸入字串s是否為合法括弧配對字串?
Thumbnail
題目會給定一個字串s,裡面都是由()*打散交錯而成。 配對規則 左括弧 ( 可以和 右括弧 ) 配對,其中 左括弧一定要在右括弧的左邊。 左括弧 ( 也可以和 *星號 配對,其中 左括弧一定要在*星號的左邊。 問我們給定的輸入字串s是否為合法括弧配對字串?
Thumbnail
題目會給定一組規則,要求我們計算給定長度下的母音直線排列有幾種?
Thumbnail
題目會給定一組規則,要求我們計算給定長度下的母音直線排列有幾種?
Thumbnail
題目會給定一個字串s,裡面都是由() [] {}打散交錯而成。 問我們給定的輸入字串s裡面,最長的合法括弧配對字串長度是多少? 例如 s = "()()" ,最長的合法括弧配對字串長度為4
Thumbnail
題目會給定一個字串s,裡面都是由() [] {}打散交錯而成。 問我們給定的輸入字串s裡面,最長的合法括弧配對字串長度是多少? 例如 s = "()()" ,最長的合法括弧配對字串長度為4
Thumbnail
題目會給定一個字串s,裡面都是由() [] {}打散交錯而成。 問我們給定的輸入字串s 是不是合法括弧自串,也就是所有的右括弧都在左括弧後面,而且可以兩兩相消。
Thumbnail
題目會給定一個字串s,裡面都是由() [] {}打散交錯而成。 問我們給定的輸入字串s 是不是合法括弧自串,也就是所有的右括弧都在左括弧後面,而且可以兩兩相消。
Thumbnail
題目:完成解決方案,當第一個參數(String 型別)以第二個參數結尾時(也是 String 型別)返回 true。
Thumbnail
題目:完成解決方案,當第一個參數(String 型別)以第二個參數結尾時(也是 String 型別)返回 true。
Thumbnail
題目會給定我們兩個字串,一個字串s,另一個字串t 要求我們判段字串s是否為字串t的子序列? (也就是s的每個字元都可以在t裡面找到,而且前後相對順序相同)
Thumbnail
題目會給定我們兩個字串,一個字串s,另一個字串t 要求我們判段字串s是否為字串t的子序列? (也就是s的每個字元都可以在t裡面找到,而且前後相對順序相同)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News