LeetCode 20. 有效的括号
题目描述
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
1.左括号必须用相同类型的右括号闭合。
2.左括号必须以正确的顺序闭合。
3.每个右括号都有一个对应的相同类型的左括号。
思路
思路:用栈解决,左括号压入栈,遇到右括号时候判断右括号类型是否和左括号匹配,匹配则继续遍历和求解,否则返回false
代码
class Solution {public boolean isValid(String s) {char[] strArray = s.toCharArray();if (strArray.length % 2 != 0){return false;}Deque<Character> stack = new LinkedList<>();for (char c : strArray) {if (c == '(' || c == '{' || c == '['){stack.push(c);} else {if (stack.isEmpty()){return false;}char popElement = stack.pop();if ((popElement == '(' && c == ')') ||(popElement == '{' && c == '}') ||(popElement == '[' && c == ']')) {continue;} else {return false;}}}if (stack.isEmpty()){return true;} else {return false;}}
}