Lc20-Valid Parentheses

复制代码
import java.util.Stack;

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

An input string is valid if:

Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.

Example 1:

Input: "()"
Output: true
Example 2:

Input: "()[]{}"
Output: true
Example 3:

Input: "(]"
Output: false
Example 4:

Input: "([)]"
Output: false
Example 5:

Input: "{[]}"
Output: true

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
 */
public class Lc20 {
    public static boolean isValid(String s) {
        Stack<Character> stack = new Stack<Character>();
        boolean isValid = false;

        char[] ch = s.toCharArray();
        for (char c : ch) {
            if ('(' == c) {
                stack.push(c);
            } else if ('[' == c) {
                stack.push(c);
            } else if ('{' == c) {
                stack.push(c);
            } else if (!stack.isEmpty()) {
                if (')' == c) {
                    Character temp = stack.pop();
                    if ('(' != temp) {
                        return false;
                    }
                } else if (']' == c) {
                    Character temp = stack.pop();
                    if ('[' != temp) {
                        return false;
                    }
                } else if ('}' == c) {
                    Character temp = stack.pop();
                    if ('{' != temp) {
                        return false;
                    }
                }
            } else {
                return false;
            }

        }
        if (stack.isEmpty()) {
            isValid = true;
        }
        return isValid;
    }

    public static void main(String[] args) {
        String s = "{";
        System.out.println(isValid(s));
    }

}
复制代码
posted @   小傻孩丶儿  阅读(106)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示