2021-08-13 20.有效的括号 Java题解记录
解题思路
解题方法主要用到了堆栈的先进后出的思路,将括号前半部分放入到栈中,然后利用其后半部分将前半部分从栈中引出,如果过程中失败则无效。同时,解题中将括号存储在了哈希表中,这样可以直接将括号进行配对,简化代码。
代码实现
class Solution {
public boolean isValid(String s) {
int l = s.length();
if(l%2 != 0 || l<=0){
return false;
}
HashMap<Character,Character> map = new HashMap<>();
map.put('(',')');
map.put('[',']');
map.put('{','}');
Stack<Character> st = new Stack<Character>();
for(char c: s.toCharArray()){
if(map.containsKey(c)){
st.push(c);
}
else{
if(st.isEmpty() || c != map.get(st.pop())){
return false;
}
}
}
return st.isEmpty();
}
}