20. 有效的括号
这题就是利用栈的特性,如果是左边的括号就加入栈中,否则进行匹配,匹配不上就return false
还有要特别注意栈中的元素的时候可能当前栈为空,直接进行判断,为空就直接return false
还有最后匹配完要检查一下栈中是否有元素,如果还有元素,就返回false
题目:


题解:
java
class Solution {
public boolean isValid(String s) {
Map<Character,Character> map = new HashMap<>();
map.put('(',')');
map.put('[',']');
map.put('{','}');
//创建一个ArrayList数组
ArrayList<Character> list = new ArrayList<>();
for(int i=0;i<s.length();i++) {
Character c = s.charAt(i);
if(c=='('||c=='['||c=='{') {
list.add(c);
}
else {
if(list.size()<1) {
return false;
}
//取出list中的最后一个元素
Character x = list.get(list.size()-1);
if(map.get(x)==c) {
list.remove(list.size()-1);
}
else {
return false;
}
}
}
if(list.size()!=0) {
return false;
}
return true;
}
}