Leetcode Q20有效的括号 Java实现

xiaoxiao2021-02-28  33

题目描述:

网页:https://leetcode-cn.com/problems/valid-parentheses/description/

 

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

 

思路:

利用栈的先进后出的原则来进行解决。将括号的后半部分压入栈中,与字符串后半部分进行比较,若没有后半部分则return false。最后的stack.isEmpty()若栈为空则字符串为偶数,其后半部分均存在,则return true;否则return false;

 

代码:

public static boolean Q20(String s) {         if (s.isEmpty())             return true;         Stack<Character> stack = new Stack<>();         for (char c : s.toCharArray()) {                 if (c == '(')                     stack.push(')');                 else if (c == '{')                     stack.push('}');                 else if (c == '[')                     stack.push(']');                 else if (stack.isEmpty() || stack.pop() != c)                  return false;          }          return stack.isEmpty(); }

转载请注明原文地址: https://www.6miu.com/read-2632116.html

最新回复(0)