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

	}
}
相关推荐
风象南6 分钟前
SpringBoot中6种拦截器使用场景
java·spring boot·后端
YuSun_WK1 小时前
程序&进程&多任务&线程
linux·运维·服务器
梦之马1 小时前
spring boot 2升级3 记录
java·spring boot·后端
HeLLo_a1192 小时前
第11章 安全网络架构和组件(一)
linux·服务器·网络
yuren_xia2 小时前
Spring MVC中自定义日期类型格式转换器
java·spring·mvc
南川琼语2 小时前
TCP概念+模拟tcp服务器及客户端
linux·服务器·网络·tcp/ip
GottdesKrieges3 小时前
OceanBase数据库磁盘空间管理
java·数据库·oceanbase
Themberfue4 小时前
Redis ⑦-set | Zset
java·开发语言·数据库·redis·sql·缓存
潘yi.7 小时前
web技术与nginx网站环境部署
服务器·网络·nginx
安顾里7 小时前
Linux命令-iostat
linux·运维·服务器