LeetCode有效的括號Swift

2022-06-14 15:21:12 字數 1082 閱讀 5107

給定乙個只包括 '(',')','','[',']' 的字串,判斷字串是否有效。

有效字串需滿足:

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

示例 1:

輸入: "()"

輸出:

true

示例 2:

輸入: "

(){}

"輸出:

true

示例 3:

輸入: "(]"

輸出:

false

示例 4:

輸入: "

([)]

"輸出:

false

示例 5:

輸入: "

"輸出:

true

思路:利用棧結構先進後出的原理

1.將資料來源用dic儲存, key為左括號 value為右括號

2.建立乙個記錄左括號的棧陣列flag

3.遍歷字串

如果當前字元滿足在dic的keys中,證明是左括號,

將元素入棧,壓入陣列flag中

如果不存在 ,證明是右括號,

如果當前字元等於棧頂元素,將棧頂元素出棧,移除陣列中的最後乙個元素,進入下乙個迴圈

如果當前字元不等於棧頂元素 也就是說,無法閉合之前的括號,則字串不成立 return false

最後只需要判斷棧陣列flag是不是為空即可,也就是說字串是不是全部完整閉合

class

solution

", "

[":"

]", "

(":")"

] var flag: [character] =

forchar

ins

else

else}}

//棧為空正好匹配,或者s為空字串

return flag.count == 0

}}

leetcode 有效的括號

題目 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 1.左括號必須用相同型別的右括號閉合。2.左括號必須以正確的順序閉合。示例1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 true includ...

leetcode 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...

LeetCode 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 本題需使用棧來解決,即遍歷字串,遇到左括號...