解题思路:
1.对括号分别赋值(左括号大于0,右括号小于0),方便后期比较
2.使用栈,对于大于0的字符串入栈,对于小于0的字符串,检查栈中是否有元素,若没有返回false,否则拿出栈顶的一个元素,和现在的元素进行比较
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
let tr ={
'(':1,
'[':2,
'{':3,
')':-1,
']':-2,
'}':-3
}
let st = [];
while(s){
let c = s[0];
if(tr[c]>0){
st.push(c)
} else{
if(st.length <1){
return false
}else{
let k = st.pop();
if(tr[k] !== 0-tr[c]){
return false;
}
}
}
s = s.substr(1);
}
if(st.length === 0){
return true
} else{
return false
}
};