給定乙個只包括'('
,')'
,''
,'['
,']'
的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: "()"示例 2:輸出: true
輸入: "(){}"示例 3:輸出: true
輸入: "(]"示例 4:輸出: false
輸入: "([)]"示例 5:輸出: false
輸入: ""輸出: true
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @time: 2018/6/29
# @author: xfli
# 方法一
def isvalid(s):
""":type s: str
:rtype: bool
"""x = ('(', '[', '')
z = ('()', '', '{}')
res =
if s is none: return false
for single_str in s:
if single_str in x:
elif single_str in y:
if res is none: # 如果收到乙個右括號,但是res中無左括號,直接返回false
return false
else:
temp = res.pop(-1) + single_str #出棧並與當前括號進行匹配
if temp not in z:
return false
if len(res) != 0: # 檢驗最終是否成對出現
return false
return true
# 方法二
def isvalid2(s):
""":type s: str
:rtype: bool
"""refer = ':'
res =
if s is none: return false
for i in s:
if i in refer and refer[i] == res[-1]:
res.pop()
else:
return len(res) == 0
if __name__ == '__main__':
strs = '([)]'
result = isvalid2(strs)
print(result)
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 輸入 輸出...