leetcode 用棧的思路求解

2021-10-06 09:50:47 字數 768 閱讀 8265

【簡單】有效的括號

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

有效字串需滿足:

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

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

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

示例 1:

輸入: "()"

輸出: true

示例 2:

輸入: "(){}"

輸出: true

示例 3:

輸入: "(]"

輸出: false

示例 4:

輸入: "([)]"

輸出: false

示例 5:

輸入: ""

輸出: true

class solution:

def isvalid(self, s: str) -> bool:

# 用棧的思路,逐一入棧

dic = ':'

stack =

for index in s:

# 棧stack非空,且是右括號

if stack and index in dic:

if stack[-1] == dic[index]:

stack.pop()

else:

return false

else:

# 最後 stack 若是非空,則返回false

return not stack

用棧求解迷宮問題

問題描述 二維陣列mg m n 它表示乙個m n的迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的路線。include define maxsize 100 define m 8 define n 8 struct st maxsize ...

2020 11 6 用棧實現迷宮求解

include include 包含system pause system cls 函式 include 包含srand rand函式 using namespace std define mazetype int 迷宮二維陣列的元素為int型 typedef struct posttype 位置資...

用棧來求解漢諾塔問題

漢諾塔問題比較經典,這裡修改一下遊戲規則 現在限制不能從最左側的塔直接移動到最右側,也不能從最右側直接移動到最左側,而是必須經過中間。求當塔有n層的時候,列印最優移動過程和最優移動總步數。輸入描述 輸入乙個數n,表示塔層數 輸出描述 按樣例格式輸出最優移動過程和最優移動總步數 示例1輸入2輸出mov...