LeetCode使用python實現有效的括號

2021-09-05 11:41:01 字數 1703 閱讀 2251

左括號必須用相同型別的右括號閉合。

左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

例項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...