leetcode-20-有效的括号
Posted nxzblogs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-20-有效的括号相关的知识,希望对你有一定的参考价值。
问题:
package com.example.demo; import java.util.HashMap; import java.util.Map; import java.util.Stack; public class Test20 /** * 有效括号 * 利用栈数据结构,遇到 [ ( 等左括号,就入栈,遇到右括号就将栈中的一个元素取出,进行比较 * 符合则继续判断下一个 */ public boolean isValid(String s) Map<String, String> map = new HashMap<>(); map.put("(", ")"); map.put("", ""); map.put("[", "]"); Stack<String> stack = new Stack<>(); for (int i = 0; i < s.length(); i++) String sub = s.substring(i, i + 1); if ("(,,[,".contains(sub)) stack.push(sub); else // 如果stack中已经没有元素了 则改一个固定值,该固定值不属于括号的一种,则比较的时候会返回false String pop = stack.isEmpty() ? "#" : stack.pop(); if (!sub.equals(map.get(pop))) return false; // 根据栈中时候仍有元素来判断时候已经匹配完成 return stack.isEmpty(); public static void main(String[] args) Test20 t = new Test20(); boolean valid = t.isValid("()()(])[]"); System.out.println(valid);
以上是关于leetcode-20-有效的括号的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode]20 Valid Parentheses 有效的括号