20. 有效的括号
题目描述
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
输入输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   | 输入:s = "()" 输出:true
  输入:s = "()[]{}" 输出:true
  输入:s = "(]" 输出:false
  输入:s = "([)]" 输出:false
  输入:s = "{[]}" 输出:true
   | 
 
基本思路
用栈push和pop就完事儿了
java实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
   | class Solution {     public boolean isValid(String s) {         if(s.isEmpty()){             return true;         }         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();     } }
  |