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

	}
}
相关推荐
琢磨先生David3 分钟前
简化复杂系统的优雅之道:深入解析 Java 外观模式
java·设计模式·外观模式
ademen3 分钟前
spring4第7-8课-AOP的5种通知类型+切点定义详解+执行顺序
java·spring
快乐肚皮18 分钟前
EasyExcel高级特性和技术选型
java
寒士obj25 分钟前
Java对象创建过程
java·开发语言
Java知识库35 分钟前
「深度拆解」Spring Boot如何用DeepSeek重构MCP通信层?从线程模型到分布式推理的架构进化
java·开发语言·spring boot·程序员·编程
进阶的DW1 小时前
新手小白使用VMware创建虚拟机安装Linux
java·linux·运维
oioihoii1 小时前
C++11 尾随返回类型:从入门到精通
java·开发语言·c++
伍六星1 小时前
更新Java的环境变量后VScode/cursor里面还是之前的环境变量
java·开发语言·vscode
风象南1 小时前
SpringBoot实现简易直播
java·spring boot·后端
万能程序员-传康Kk1 小时前
智能教育个性化学习平台-java
java·开发语言·学习