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

	}
}
相关推荐
左左右右左右摇晃7 分钟前
Java并发——锁的状态演变
java·开发语言·笔记
Roselind_Yi9 分钟前
排查Visual C++堆损坏(HEAP CORRUPTION)错误:从报错到解决的完整复盘
java·开发语言·c++·spring·bug·学习方法·远程工作
wanhengidc10 分钟前
服务器托管对企业的作用
大数据·运维·服务器·分布式·智能手机
bing_15814 分钟前
spring Boot 3.0 和2.0的区别
java·spring boot·后端
基于底层的菜鸟14 分钟前
VsCode GitHub Copilot Chat 节省request
服务器·copilot·ai编程
Thomas.Sir15 分钟前
Shiro认证与授权:Java安全框架的核心机制
java·安全·shiro·权限控制
wuqingshun31415927 分钟前
谈一下Daemon线程
java·开发语言
Yupureki30 分钟前
《Linux系统编程》15.进程间通信-管道
linux·运维·服务器·c语言·c++
Yupureki35 分钟前
《Linux系统编程》14.库的制作与原理
linux·运维·服务器·c语言·开发语言·c++
启山智软37 分钟前
【对比了几家电商商城系统】
java·开源