【LeetCode】 20.有效的括號
題目描述:
給定一個只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字串,判斷字串是否有效。
有效字串需滿足:
- 左括號必須用相同型別的右括號閉合。
- 左括號必須以正確的順序閉合。
- 注意空字串可被認為是有效字串。
示例 1:
輸入: "()"
輸出: true
示例 2:
輸入: "()[]{}"
輸出: true
示例 3:
輸入: "(]"
輸出: false
示例 4:
輸入: "([)]"
輸出: false
示例 5:
輸入: "{[]}"
輸出: true
題目連結:有效的括號
題目標籤:棧
字串
思路解析:
使用棧資料結構,遍歷輸入字串
如果當前字元為左半邊括號時,則將其壓入棧中
如果遇到右半邊括號時,分類討論:
-
如棧不為空且為對應的左半邊括號,則取出棧頂元素,繼續迴圈
-
若此時棧為空,則直接返回 false
-
若不為對應的左半邊括號,反之返回 false
Java題解:
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (c == '(') {
stack.push(')');
} else if (c == '[') {
stack.push(']');
} else if (c == '{') {
stack.push('}');
} else if (stack.isEmpty() || stack.pop() != c) {
return false;
}
}
return stack.isEmpty();
}
相關文章
- Leetcode——20. 有效的括號LeetCode
- LeetCode 20. 有效的括號LeetCode
- 20. 有效的括號
- [leetcode]有效的括號LeetCode
- Leetcode20. 有效的括號LeetCode
- 【LeetCode-棧】有效的括號LeetCode
- LeetCode有效的括號(Python)LeetCodePython
- LeetCode-20. 有效的括號(棧模擬)LeetCode
- Leetcode 20 有效的括號valid-parentheses(棧)LeetCode
- 最長有效括號
- [LeetCode] Longest Valid Parentheses 最長有效括號LeetCode
- 每日一題: 有效括號每日一題
- LeetCode 之 JavaScript 解答第20題 —— 有效的括號(Valid Parentheses)LeetCodeJavaScript
- [Go 演算法]20:有效括號(棧)Go演算法
- 括號生成-LeetCode22LeetCode
- leetcode:遞迴:括號生成LeetCode遞迴
- [LeetCode] Generate Parentheses 生成括號LeetCode
- 【leetcode】32. Longest Valid Parentheses 最長的有效匹配括號子串長度LeetCode
- 演算法題:判斷括號字串是否有效演算法字串
- 理解正規表示式中的括號 (),方括號 [] 和大括號 {}
- LeetCode 3: PairsOfParentheses (括號匹配問題)LeetCodeAI
- LeetCode-022-括號生成LeetCode
- [LeetCode] Valid Parentheses 驗證括號LeetCode
- LeetCode - 22. 括號的生成(遞迴)1LeetCode遞迴
- Python有效括號字串判斷和深度計算Python字串
- 讓我們一起啃演算法----有效的括號演算法
- c++物件建立帶括號與無括號的區別C++物件
- JavaScript中圓括號()和方括號[]的一個特殊用法JavaScript
- 【leetcode】22. Generate Parentheses 合法括號串的所有組合LeetCode
- Matlab中的括號()[]{}Matlab
- 括號畫家
- 【棧】括號匹配
- JSON 字串中的中括號和大括號區別詳解JSON字串
- JavaScript 函式呼叫時帶括號和不帶括號的區別JavaScript函式
- 【leetcode】leetcode22括號生成通過程式碼及題解LeetCode
- [PHP字串]②--花括號{}的作用PHP字串
- Shell 括號總結
- Swift之花括號Swift