import java.util.*;
public class Solution {
/**
*
* @param s string字符串
* @return bool布尔型
*/
public boolean isValid (String s) {
// write code here
// 一些特殊情况的处理
if (0 == s.length()) { // 如果 String 的长度为 0,我们姑且认为它合法
return true;
}
if (s.length() % 2 != 0) { // 如果 String 的长度为奇数,那么它肯定不合法
return false;
}
Stack<Character> stack = new Stack<>(); // 定义一个 Stack,用于存放字符
char[] chrs = s.toCharArray(); // 将字符串转换为字符数组
boolean bool = true;
char tmp;
for (char chr : chrs) {
if ('(' == chr || '[' == chr || '{' == chr) {
stack.push(chr);
}
else {
if (stack.isEmpty()) {
bool = false;
break;
}
else {
tmp = stack.pop();
if (('(' == tmp && ')' != chr) || ('[' == tmp && ']' != chr) || ('{' == tmp && '}' != chr)) {
bool = false;
break;
}
}
}
}
if (!stack.isEmpty()) {
bool = false;
}
return bool;
}
}