Java判断字符串是否是有效的括号

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

有效字符串需要满足:

左括号必须用相同类型的右括号闭合。例如:"\[\]","()","{}"

左括号必须以正确的顺序闭合。例如:"()"

每个右括号都有一个对应的相同类型的左括号。例如:"(){}"

java 复制代码
package learnProject.csdn;

/**
 * 
 * @author Roc-xb
 *
 */
public class ValidParentheses {

	public static boolean isValid(String s) {
		if (s == null || s.length() == 0)
			return false;
		char[] stack = new char[s.length()];
		int head = 0;
		for (char c : s.toCharArray()) {
			switch (c) {
			case '{':
			case '[':
			case '(':
				stack[head++] = c;
				break;
			case '}':
				if (head == 0 || stack[--head] != '{') {
					return false;
				}
				break;
			case ')':
				if (head == 0 || stack[--head] != '(') {
					return false;
				}
				break;
			case ']':
				if (head == 0 || stack[--head] != '[') {
					return false;
				}
				break;
			}
		}
		return head == 0;
	}

	public static void main(String[] args) {
		System.out.println(isValid(null));

	}
}
相关推荐
星沉远浦26 分钟前
用Gemini高效解决Java代码报错难以定位的问题
java
用户298698530144 小时前
Word 文档字符级格式化:Java 实现方案详解
java·后端
笨鸟飞不快4 小时前
从单个服务到集群:一次完整的性能排查复盘
java·前端
荣码5 小时前
用Streamlit给AI应用套个界面,10行代码出Web页面
java·python
SamDeepThinking5 小时前
Java微服务练习方式
java·后端·微服务
朦胧之15 小时前
AI 编程-老项目改造篇
java·前端·后端
程序猿大帅20 小时前
别再只当调包侠了:用 Spring AI 落地 Function Calling,我被大模型硬生生砸出了三个大坑
java
程序员晓琪21 小时前
约定大于配置:基于 Java 包名自动生成 API 版本路由的最佳实践
java·spring boot·后端
Flittly21 小时前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
众少成多积小致巨21 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++