package DataStructure.stack;import java.util.ArrayDeque;import java.util.Deque;/*** 20. 有效的括号 https://leetcode.cn/problems/valid-parentheses/* 题目简述:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串中括号的顺序是否有效*/public class ValidParentheses {public static void main(String[] args) {System.out.println(isValid("()[]{}"));}/*** 思路:使用一个栈,遍历字符串,遇到左括号则入栈,遇到右括号若此时栈不为空则出栈一个元素检查是否是对应的左括号,不是则直接返回false。* 全部遍历完成后,若栈空,则返回true* 像涉及到栈、队列这类题要注意到栈可能重新为空的情况*/public static boolean isValid(String s) {Deque<Character> stack = new ArrayDeque<>();for (int i=0;i < s.length();i++) {char nextChar = s.charAt(i);if (stack.isEmpty()) {stack.addLast(nextChar);continue;}char topChar = stack.getLast();if ((topChar == '(' && nextChar == ')') || (topChar == '[' && nextChar == ']') || topChar == '{' && nextChar == '}') {stack.removeLast();} else {stack.addLast(nextChar);}}return stack.isEmpty();}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。