20190305 leetcode題目有效的括號

2022-07-20 08:54:10 字數 1779 閱讀 6693

給定乙個只包括'('')''''['']'的字串,判斷字串是否有效。

有效字串需滿足:

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

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

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

官方解讀:

使用堆疊處理該題,初始化棧 s。

1.一次處理表示式的每個括號。

2.如果遇到開括號,我們只需將其推到棧上即可。這意味著我們將稍後處理它,讓我們簡單地轉到前面的 子表示式。

3.如果我們遇到乙個閉括號,那麼我們檢查棧頂的元素。如果棧頂的元素是乙個 相同型別的 左括號,那麼我們將它從棧中彈出並繼續處理。否則,這意味著表示式無效。

4.如果到最後我們剩下的棧中仍然有元素,那麼這意味著表示式無效。

示例 1:

輸入: "()"

輸出: true

示例 2:

輸入: "(){}"

輸出: true

示例 3:

輸入: "(]"

輸出: false

示例 4:

輸入: "([)]"

輸出: false

示例 5:

輸入: ""

輸出: true

def

isvalid(s):

stack =

for item in

s:

if item == "("

:

elif item ==")"

:

try:

if stack[-1] =="("

: stack.pop()

else

:

return

false

except

:

return

false

elif item =='['

:

elif item ==']'

:

try:

if stack[-1] =="["

: stack.pop()

else

:

return

false

except

:

return

false

#使用異常處理機制是為了以防出現多個閉括號而無開括號會導致pop的時候出錯,當pop出錯的時候說明閉括號無對應的開括號直接返回false

elif item =='':

try:

if stack[-1] =="{"

: stack.pop()

else

:

return

false

except

:

return

false

ifstack:

return

false

else

:

return true

畢設 需求文件 20190305

缺陷 開發完成 瀏覽記錄沒有刪除重覆記錄 缺陷 開發完成 我的瀏覽記錄中的賀卡詳情頁carddetail不能有編輯按鈕,其他使用者資訊要顯示賀卡製作人的資訊 新建 開發完成 我的祝福列表 個人中心瀏覽記錄列表為空時沒有提示 缺陷 開發完成 各種變形 新建 人臉識別功能 缺陷 ui介面優化 查一些根據...

leetcod刷題 移動零

週末了,睡了好久的懶覺了,起來去實驗室寫專案之前再刷一道題提提神就好了。給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。示例 輸入 0,1,0,3,12 輸出 1,3,12,0,0 說明 必須在原陣列上操作,不能拷貝額外的陣列。儘量減少操作次數。這道題也...

LeetCod 27 移除元素

給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。示例 1 給定 nums 3,2,2,3 ...