給定乙個只包括 '(',')','','[',']' 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
輸入: "()"輸出:
true
輸入:
"(){}
"輸出:
true
輸入: "(]
"輸出:
false
輸入:
"([)]
"輸出:
false
輸入: ""
輸出:
true
首先理解題意:
首先空字串必定為true
其次括號成對出現
有可能在括號中間出現成對的括號
那我們就可以想象有乙個容器,一直把字串的每個字元塞進去,當成對出現的時候就去除,當容器內沒有任何元素了,那就說明字串是有效的括號組合,否則不是
//特殊情況,空字串返回true
if len(s) == 0
//配對字典
m := map[string]string
": "
//棧var stack string
//把字串的每個字元放進棧中,每放乙個就判斷與前乙個是不是配對的
for i := 0; i < len(s); i++
else
else}}
//判斷棧中是否沒有元素
//是的話返回true
//否則返回false
if len(stack) == 0
else
這裡有個小技巧,就是每次我們放進容器的字元,當配對成功的時候,肯定是塞進右邊的符號,所以可以構造乙個以右邊括號為key,左邊括號為值得字典
領扣 有效的括號 Python實現
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5 輸入 輸...
棧,有效的括號(Python實現)
給定乙個只包括 的字串,判斷字串是否有效。將字串從前向後 從後向前也可 依次取出,若取出的字元與棧頂元素可以組成有效的括號,則彈出棧頂元素,否則將該字元壓入棧頂。字元全部取出後若棧為空,則字串有效,反之無效。class solution object defisvalid self,s type s...
leetcode有效的括號(js實現)
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5 輸入 輸...