leetcode 有效的括號 筆記

2021-09-29 12:28:03 字數 2389 閱讀 8334

1,排除為空(true),最後為括號開頭,第一位括號結尾,長度不能整除2的

2,迴圈

a,若第乙個數的有括號無-false

b,若有,第一塊資料長度不能被2整除-false

c,若能整除,for迴圈一般子字串長度,確認是否與另一半對應值一致(這裡演算法沒寫好),不一致,false

子串長度加上迴圈變數

無放在最後,太冗長,又沒調通,不配擁有位置

執行用時 :68 ms, 在所有 python3 提交中擊敗了25.84% 的使用者

記憶體消耗 :13.9 mb, 在所有 python3 提交中擊敗了5.51%的使用者

class

solution

:def

isvalid

(self, s:

str)

->

bool

:while

'{}'

in s or

'()'

in s or

''in s:

s = s.replace(

'()',''

) s = s.replace('',

'')s = s.replace(

'{}',''

)return s ==

''

執行用時 :40 ms, 在所有 python3 提交中擊敗了89.64% 的使用者

記憶體消耗 :14 mb, 在所有 python3 提交中擊敗了5.51%的使用者

class

solution

:def

isvalid

(self, s:

str)

->

bool

: stack =

':'for char in s:

#大if-else:當前char是否是右括號(key),是-->下句

stack_top = stack.pop(

)if stack else

"#"#若棧不為空,彈出最上面;為空,賦值啞變數

!= stack_top :

#小if-else:若彈出值與右括號value取值不一致,返回false

return

false

else

:#大if-else:當前char是否是右括號,否-->加入棧

return

not stack

1,這次耗時將近3小時,下次一小時做不出來,或編寫一輪初稿後不通過即看答案

2,要再了解堆疊用法,需要更新(已更新)

def

isvalid

(strs)

: len_str =

len(strs)

i =0 starts =

'])'

if(strs[-1

]in starts)

or(strs[0]

in ends)

or(len_str%2)

:return

false

while i < len_str:

end = ends[starts.find(strs[i])]

if end not

in strs[i+1:

]:return

false

len_sub = strs[i:

].find(end,1)

+1if len_sub%2!=

0:return

false

else

: temp_num =

int(len_sub/2)

for j in

range

(i,temp_num+i)

:print

(j)print

(ends[starts.find(strs[j])]

,strs[i +len_sub -j ]

)if ends[starts.find(strs[j])]

!= strs[len_sub +i - j -1]

:#這裡兩個比較值不對

print(2

)return

false

else

:print(3

)continue

i += len_sub

#測試用例

a="()"

b ="(){}"

c ="(]"

d ="([)]"

e =""

f =""

for i in

[b,f]

:print

(isvalid(i)

)

leetcode 有效的括號

題目 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 1.左括號必須用相同型別的右括號閉合。2.左括號必須以正確的順序閉合。示例1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 true includ...

leetcode 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true示例 2 輸入 輸出 true示例 3 輸入 輸出 false示例 4 輸入 輸出 false示例 5 輸入 輸出 tr...

LeetCode 有效的括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 本題需使用棧來解決,即遍歷字串,遇到左括號...