題目:
給定乙個只包括 '(',')','','[',']' 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: "()"
輸出: true
示例 2:
輸入: "(){}"
輸出: true
示例 3:
輸入: "(]"
輸出: false
示例 4:
輸入: "([)]"
輸出: false
示例 5:
輸入: ""
輸出: true
思路:
這個題目很有意思,隨便寫下幾個符合條件的str,你就會發現乙個規律,當乙個符合要求的str出現的時候,它滿足這樣的情況:
"" "" "..."
-->遇見左開右閉就remove,最後剩下的個數必為0,不為0的情況那就是不符合條件返回false
所以,我們是不是可以這樣做,從左第乙個字元算起,遇見相同的閉字元就remove,經歷字串長度的遍歷後如果最後元素為0,那麼返回true,否則false。
方法一:
class solution(object):
def isvalid(self, s):
""":type s: str
:rtype: bool
"""res =
dict_arr = ": "
for char in s:
if char in dict_arr:
if res: #閉存在且res不為空就remove當前res最後乙個元素(開字元)
temp = res.pop()
if dict_arr[char] !=temp :#特殊情況,"(]"return false
return false
else: #為空,卻找到閉字元,則不符合情況return false
return false
else:
return not res
執行用時:16 ms, 在所有 python 提交中擊敗了94.28%的使用者
記憶體消耗:12.7 mb, 在所有 python 提交中擊敗了5.00%的使用者
LeetCode20有效括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...
Leetcode 20 有效括號
leetcode 20 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true pthon 列表 如 a a b 字典 如 dict not ...
leetcode 20 有效括號
怎麼減少if語句,判斷是否是某乙個值,將值存進map中,是否在map中,若在,則是 匹配用map 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出...