这道题属于一道简单题,可以使用辅助栈法,代码如下所示
class Solution {public boolean isValid(String s) {if (s.isEmpty())return false;// 创建字符栈Stack<Character> stack = new Stack<Character>();// 遍历字符串数组for (char c : s.toCharArray()) {// 要括号以正确顺序出现,那么左括号是必须出现在右括号之前的,否则就可以直接返回false了,// 每次遇到左括号就往栈里push一个对应的右括号,等下次if (c == '(') {stack.push(')');} else if (c == '{') {stack.push('}');} else if (c == '[') {stack.push(']');} else if (stack.isEmpty() || c != stack.pop()) {// 在栈为空的前提下遍历到一个右括号,直接返回false// 遍历到一个右括号时,如果栈不为空把栈顶出栈与这个右括号比较,// 相等就说明这对括号有效并把这个右括号出栈,否则直接返回falsereturn false;}}// 如果遍历完字符串后栈为空,说明全部都是有效括号,否则返回falseif (stack.isEmpty())return true;return false;}
}
题目链接:题单 - 力扣(LeetCode)全球极客挚爱的技术成长平台