1. 題目描述
獲取字串的長度
4if n == 0:#
如果長度為0,則表示空串,本題認為是合法的串
5return
true
6if n % 2 == 1:#
如果是奇數個括號,則必然不合法
7return
false
8 stack = #
定義乙個列表用來模擬棧
9for c in s:#
迴圈字串中的每個字元
10if c == '('
or c == '':
21if len(stack) >0:
22if stack[-1] == '')
26else:27
return
false
28elif c == ']'
:29if len(stack) >0:
30if stack[-1] == '['
:31 stack.pop(-1)
32else:]
')34else:35
return
false
36if len(stack) == 0:#
如果棧可以左右都匹配(成對消除)
37return true#
則是合法串
38else:39
return false
思路:
1.左右匹配, 就相當於1進1出, 最後棧的長度為0, 返回真.
2. 如果都不匹配, 就都入棧, 最後棧的長度不等於0, 返回false.
3. 如果是示例5, 就是先 也是同樣的道理.
3.整理
3.1 列表
1 list1 = ['3.2 元組', '
runoob
', 1997, 2000]
2 list2 = [1, 2, 3, 4, 5]
3 list3 = ["
a", "
b", "
c", "d"
]4 list4 = ['
red', '
green
', '
blue
', '
yellow
', '
white
', '
black
']
1 tup1 = ('3.3 棧, 後進先出.', '
runoob
', 1997, 2000)
list模擬棧,進入順序0 1 2 3,出棧順序3 2 1 0
list(-1)表示棧頂元素.
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 輸入 輸出...