給定乙個只包括'('
,')'
,''
,'['
,']'
的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
官方解讀:
使用堆疊處理該題,初始化棧 s。
1.一次處理表示式的每個括號。
2.如果遇到開括號,我們只需將其推到棧上即可。這意味著我們將稍後處理它,讓我們簡單地轉到前面的 子表示式。
3.如果我們遇到乙個閉括號,那麼我們檢查棧頂的元素。如果棧頂的元素是乙個 相同型別的 左括號,那麼我們將它從棧中彈出並繼續處理。否則,這意味著表示式無效。
4.如果到最後我們剩下的棧中仍然有元素,那麼這意味著表示式無效。
示例 1:
輸入: "()"示例 2:輸出: true
輸入: "(){}"示例 3:輸出: true
輸入: "(]"示例 4:輸出: false
輸入: "([)]"示例 5:輸出: false
輸入: ""輸出: true
defisvalid(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 ...