Leetcode 20 有效的括號

2021-09-25 20:52:08 字數 1265 閱讀 1769

【題目描述】

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

有效字串需滿足:

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

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

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

【示例】

示例 1:

輸入: "()"

輸出: true

示例 2:

輸入: "(){}"

輸出: true

示例 3:

輸入: "(]"

輸出: false

示例 4:

輸入: "([)]"

輸出: false

示例 5:

輸入: ""

輸出: true

【思路】

之前上資料結構的課時有講過相關思路:

1.用棧,從左至右掃瞄乙個表示式,如果遇到左括號就入棧,如果遇到右括號就出棧。假如這個出棧操作不能成功(此時棧空),就直接判斷為括號不匹配。

2.如果可以出棧,就檢測剛才掃瞄到的括號和剛出棧的括號,如果兩者恰好匹配,則繼續掃瞄;否則就直接判斷為括號不匹配。

3.一直進行下去,直到整個表示式都掃瞄完畢。如果此時棧中還有括號,就說明表示式中的括號不匹配。

4.如果此時恰好棧空,那麼就說明此時表示式中的括號時匹配的。

5.有乙個很重要的步驟反覆出現:比較當前選出的兩個括號(其中乙個出棧而來,而另乙個是當前掃瞄到的)來判斷它們是否匹配。

【我的答案】

#define maxsize 1000000

int ismatched(char left,char right)')

return 1;

else

return 0;

}bool isvalid(char exp)

')

}if(top > -1)//看棧是否為空

return 0;

return 1;

}

之前沒有定義maxsize的值,後來又定義值為1000

報錯:line 20: char 14: runtime error: index 1000 out of bounds for type 『char [1000]』 (solution.c)

發現執行用例嗷嗷長,於是在1000後面又多加了不知道多少個0

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 輸入 輸出...