题目:
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input
string is valid.
The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and
"([)]" are not.
解答:
1 public class Solution { 2 3 private static final Map<Character, Character> map = new HashMap<Character, Character>() {{ 4 put('(', ')'); 5 put('{', '}'); 6 put('[', ']'); 7 }}; 8 9 public boolean isValid(String s) { 10 Stack<Character> stack = new Stack<>(); 11 for(Char c : s.toCharArray()) { 12 if(map.contaisKey(c)) { 13 stack.push(c); 14 } else if(stack.isEmpty() || map.get(stack.pop()) != c) { 15 return false; 16 } 17 } 18 19 return stack.isEmpty(); 20 } 21 22 public static void main(String[] args) { 23 String s = "[{}]"; 24 System.out.println(isValid(s)); 25 } 26 }