20. 有效的括号 Valid Parentheses

Given a string s containing just the characters '('')''{''}''[' and ']', determine if the input string is valid.

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  2. Open brackets must be closed in the correct order.

Input: s = "()[]{}"
Output: true

 

方法:

利用栈,左括号入栈,右括号则从栈中取值看是否配对,注意pop时判断是否为空,最后栈为空则有效。

 

复制代码
public boolean isValid(String s) {
        if (s == null || s.length() % 2 != 0)
            return false;
        Stack<Character> stack = new Stack<>();

        char [] str = s.toCharArray();
        for(char c : str) {
            if (c == '(' || c == '[' || c == '{') {
                stack.push(c);
            } else {
                if (stack.size() == 0) return false;
                Character pair = stack.pop();
                if (c == ')' && pair != '(' ||
                        c == ']' && pair != '[' ||
                        c == '}' && pair != '{')
                    return false;
            }
        }

        if (stack.size() != 0)
            return false;
        return true;
    }
复制代码

 

参考链接:

https://leetcode.com/problems/valid-parentheses/

https://leetcode-cn.com/problems/valid-parentheses/

posted @   diameter  阅读(115)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示