本文主要記錄一下leetcode棧之有效的括號網絡
給定一個只包括 '(',')','{','}','[',']' 的字符串,判斷字符串是否有效。 有效字符串需知足: 左括號必須用相同類型的右括號閉合。 左括號必須以正確的順序閉合。 注意空字符串可被認爲是有效字符串。 示例 1: 輸入: "()" 輸出: true 示例 2: 輸入: "()[]{}" 輸出: true 示例 3: 輸入: "(]" 輸出: false 示例 4: 輸入: "([)]" 輸出: false 示例 5: 輸入: "{[]}" 輸出: true 來源:力扣(LeetCode) 連接:https://leetcode-cn.com/problems/valid-parentheses 著做權歸領釦網絡全部。商業轉載請聯繫官方受權,非商業轉載請註明出處。
class Solution { public boolean isValid(String s) { Stack<Character>stack = new Stack<Character>(); for(char c: s.toCharArray()){ if(c=='(')stack.push(')'); else if(c=='[')stack.push(']'); else if(c=='{')stack.push('}'); else if(stack.isEmpty()||c!=stack.pop())return false; } return stack.isEmpty(); } }
這裏藉助棧,而後遍歷每一個char,針對(
、[
、{
分別push對應配對的char,其餘的則判斷stack是否爲空或者pop出來的值是否與之相等,若是不等則返回false,若是遍歷完以後,stack不爲空則返回false,爲空返回true。code