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));

	}
}
相关推荐
qq_165901693 分钟前
spring-cloud读取Nacos上的配置
java·spring cloud·springcloud
芒克芒克5 分钟前
深入浅出JVM的运行时数据区
java·开发语言·jvm·面试
毕设源码-赖学姐7 分钟前
【开题答辩全过程】以 影视资源分享论坛为例,包含答辩的问题和答案
java
沉默-_-9 分钟前
从小程序前端到Spring后端:新手上路必须理清的核心概念图
java·前端·后端·spring·微信小程序
二等饼干~za89866810 分钟前
碰一碰发视频系统源码搭建部署技术分享
服务器·开发语言·php·音视频·ai-native
xrkhy10 分钟前
多线程,高并发、物联网以及spring架构的面试题-->周
java·spring·架构
jgyzl11 分钟前
2025.12.21 学习web前必要知识点梳理
java·hash
a程序小傲14 分钟前
中国邮政Java面试被问:gRPC的HTTP/2流控制和消息分帧
java·开发语言·后端
forestsea15 分钟前
Springboot 4.0十字路口:虚拟线程时代,WebFlux与WebMVC的终极选择
java·后端·spring
网安CILLE17 分钟前
Linux 命令大全(网络安全常用)
linux·运维·服务器·网络安全