Leetcode. 20 有效括號
阿新 • • 發佈:2018-12-15
20 有效括號
給定一個只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。
注意空字串可被認為是有效字串。
import java.util.Map; import java.util.Stack; public class Solution{ public boolean isValid(String s) { if(s==null||s.equals("")) return false; Map<Character, Character> map=new HashMap<Character, Character>(); map.put(')', '('); map.put(']','['); map.put('}', '{'); if(s.length()<2) { return false; } Stack<Character> stack=new Stack<>(); char[] charArray = s.toCharArray(); for(int i=0;i<charArray.length;i++) { if(map.containsKey(charArray[i])) { //根據鍵值找出值判斷是否與棧中相對應 Character pop = stack.isEmpty()?'#':stack.pop(); if(map.get(charArray[i])!=pop) { return false; } }else { //map的值壓進去 stack.push(charArray[i]); } } return stack.isEmpty(); } public static void main(String[] args) { String s=")["; System.out.println(new Solution().isValid(s)); } }