题目描述:
解题思路:
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function (s) {
// 定义一个数组存储所有的左括号
var total = [];
for (key in s) {
if (s[key] == '(' || s[key] == '{' || s[key] == '[') {
// 把所有都是左括号的都存进数组里面
total.push(s[key]);
} else {
// 存储数组的最后一个下标
var index = total.length - 1;
// 判断所有的右括号是否与数组里面的最后一个相同,如果相同就删除
if ((s[key] == ')' && total[index] == '(') || (s[key] == '}' && total[index] == '{') || (s[
key] ==
']' && total[index] == '[')) {
total.pop();
} else {
// 如果字符串里面并没有左括号,并且右括号和数组最后一个不匹配,我们直接返回false
return false;
}
}
}
// 最后如果total的长度不等于0,就返回false
return total.length == 0;
};
运行结果: