给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。
示例 1:
输入: "()" 输出: true 示例 2:
输入: "()[]{}" 输出: true 示例 3:
输入: "(]" 输出: false 示例 4:
输入: "([)]" 输出: false 示例 5:
输入: "{[]}" 输出: true
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
var left = ['(','[','{'],
right = [')',']','}'],
curLeft,
allLeft = []
for(var i = 0 ; i < s.length; i ++){
if(left.indexOf(s[i]) != -1){
allLeft.push(s[i]);
curLeft = s[i];
}
if(right.indexOf(s[i]) != -1){
var index = right.indexOf(s[i]);
if(left.indexOf(curLeft) == index){
allLeft.pop();
curLeft = allLeft[allLeft.length-1]
}else{
allLeft.push(s[i]);
}
}
}
return allLeft.length > 0 ? false : true;
};
← 最长回文串(中心扩散法) 杨辉三角 →