左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
例項1:
輸入: "()"
輸出: true
例項2:
輸入: "(){}"
輸出: true
例項3:
輸入: "(]"
輸出: false
例項4:
輸入: "([)]"
輸出: false
例項5:
輸入: ""
輸出: true
實現思路:
1)去除字串中所有的空白字串
2)遍歷字串
2.1)遇到左括號全都入棧
2.2)遇到右括號就出棧乙個元素,然後匹配是否是一對。
3)成功遍歷則返回true
# _*_ coding:utf-8 _*_
''' @author:xianyt
@date:2018/
@func:
給定乙個只包括 '(',')','','[',']' 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
''''''
實現思路:
1)去除所有的空白字串
2)遍歷字串
2.1)左括號全都入棧
2.2)遇到右括號就出棧,然後匹配是否合適
3)成功遍歷則返回true
'''class solution(object):
def isvalid(self, s):
""":type s: str
:rtype: bool
"""stack = #建立乙個空棧
s = "".join(s.split())
#s裡面沒有括號
if not s:
return true
for i in s:
if i=='(' or i=='[' or i=='':
if not stack: #棧中沒有左元素
return false
left_ele = stack.pop()
if i==')':
if left_ele != '(':
return false
elif i==']':
if left_ele != '[':
return false
elif i=='}':
if left_ele != '"))
print(solu.isvalid("(]"))
print(solu.isvalid("([)]"))
print(solu.isvalid(""))
print(solu.isvalid('( ) {}'))
print(solu.isvalid(""))
print(solu.isvalid('[((('))
print(solu.isvalid(')))(('))
leetcode 字母異位詞分組(python)
題目 給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。注意 需熟悉字典的相關使用方法 class so...
leetcode 200 島嶼數量 python
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1示例 2 輸入 11000 11...
leetcode 字母異位詞分組 python3
給定乙個字串陣列,將字母異位片語合在一起。字母異位詞指字母相同,但排列不同的字串。示例 輸入 eat tea tan ate nat bat 輸出 ate eat tea nat tan bat 說明 所有輸入均為小寫字母。不考慮答案輸出的順序。python中使用 字典 維護乙個分組表,鍵值 key...