leetcode 20 有效的括號

2021-09-25 08:43:46 字數 1451 閱讀 5867

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

有效字串需滿足:

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

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

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

示例 1:

輸入:"()"輸出:true
示例 2:

輸入:"(){}"輸出:true
示例 3:

輸入:"(]"輸出:false
示例 4:

輸入:"([)]"輸出:false
示例 5:

輸入:

""輸出:true

演算法
棧機制:遍歷字串,遇到左括號壓棧,遇到右括號判斷:若有與之匹配的左括號,彈棧,若不匹配,直接返回false

遍歷完字串,判斷棧空,若空,返回true;否則,返回false

1

class

solution

13else

if(s[i] == ')'

)1421else

2225}26

else

if(s[i] == ']'

)2734else

3538}39

else

if(s[i] == '}'

)4047else

4851}52

}53return

str.empty();54}

55 };

上面**,可讀性太差,不夠精簡,重寫了一下。

思路:map + stack機制,map儲存括號的對映(注意是右括號對映左括號,因為後面要用右搜尋左),stack做左括號的壓棧彈棧操作。遇到右括號,如果棧空或者棧頂不是對應左括號(用map去找),返回false,否則,彈棧。

1

class

solution

'] = '23}

24return

st.empty();25}

26 };

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