1、首先判断字符串长度是否小于等于1
2、建立一个HashMap,将不同括号的类型都丢进去
3、建立一个item,遍历整个字符串并转化为char类型丢进item
4、建立一个stack,判断item的所有元素是否在map中存在
5、如果存在则将该元素丢到stack里
6、若不存在则判断stack是否为空
7、若不为空则把stack的栈顶元素作为key,在map中找到对应的value与item比较
8、若不相等以及stack为空则返回false
boolean isValid(String s) {
if (s.length() <= 1) {
return false;
}
Stack<Character> stack = new Stack<>();
Map<Character, Character> map = new HashMap<>();
map.put('(', ')');
map.put('{', '}');
map.put('[', ']');
for (int i = 0; i < s.length(); i++) {
char item = s.charAt(i);
if(map.containsKey(item)){
stack.push(item);
}else{
if(!stack.isEmpty()){
Character left = stack.pop();
char right = map.get(left);
if(right != item){
return false;
}
}else{
return false;
}
}
}
return stack.isEmpty();
}