classsolution(object):
"""給定乙個只包括 '(',')','','[',']' 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
示例 1:
輸入: "()"
輸出: true
示例 2:
輸入: "(){}"
輸出: true
示例 3:
輸入: "(]"
輸出: false
示例 4:
輸入: "([)]"
輸出: false
示例 5:
輸入: ""
輸出: true
""""""
@author : jiyanjiao
@date :2020-4-8
"""#
基本解法
@staticmethod
defisvalid(s):
""":type s: str
:rtype: bool
"""for i in
s:
if i == "("
: index_begin = s.find("("
) index_end = s.find(")"
)
if index_end == -1:
print("
false")
return
index_r1 = s.find("["
, index_begin, index_end)
index_r2 = s.find("
", index_begin, index_end)
if index_r1 == -1 and index_r2 == -1 and index_r3 == -1 and index_r4 == -1:
print("
true")
else
:
print("
false")
elif i == "["
: index_begin = s.find("["
) index_end = s.find("]"
) index_r1 = s.find("("
, index_begin, index_end)
index_r2 = s.find("
", index_begin, index_end)
if index_r1 == -1 and index_r2 == -1 and index_r3 == -1 and index_r4 == -1:
print("
true")
else
:
print("
false")
elif i == "")
index_r1 = s.find("("
, index_begin, index_end)
index_r2 = s.find("["
, index_begin, index_end)
index_r3 = s.find(")"
, index_begin, index_end)
index_r4 = s.find("]"
, index_begin, index_end)
if index_r1 == -1 and index_r2 == -1 and index_r3 == -1 and index_r4 == -1:
print("
true")
else
:
print("
false")
#其他作者解法
@staticmethod
defisvalid1(s):
""":type s: str
:rtype: bool
"""stack = #
設定乙個列表,把該列表當做棧來使用即可。
dic =
': '
#使用字典儲存括號,並且右括號為key,左括號為value
for char in
s:
if char in dic.values(): #
左括號就入棧
elif char in dic.keys(): #
有右括號的話就進行比較,
if stack == or dic[char] !=stack.pop():
return
false
else
:
return false #
不再字典中的輸入直接輸出錯誤
return stack == #
如果棧最後是空的,那麼則符合要求,輸出true,如果不是,則輸出false,使用乙個條件表示式
if__name__ == '
__main__':
s =solution
ss = "(]"
s.isvalid1(ss)
有效的括號
題目描述 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。解題思路 坦白來講這道題真的沒什麼思路,掉的坑也比較多,因為審題不認真,最後的一句話,注意空字串可被認為是有效字串。被吃掉了 最後提交的 執...
有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。多組資料 每組是乙個由 組成的括號序列 每組字串長度不超過50。如果有效輸出true,否則輸出false。true true false false ...
有效的括號
給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。多組資料 每組是乙個由 組成的括號序列 每組字串長度不超過50。如果有效輸出true,否則輸出false。true true false false ...