[LeetCode][JavaScript]Valid Parentheses
Valid Parentheses
Given a string containing just the characters '('
, ')'
, '{'
, '}'
, '['
and ']'
, determine if the input string is valid.
The brackets must close in the correct order, "()"
and "()[]{}"
are all valid but "(]"
and "([)]"
are not.
https://leetcode.com/problems/valid-parentheses/
水题好愉快。
1 /** 2 * @param {string} s 3 * @return {boolean} 4 */ 5 var isValid = function(s) { 6 var stack = []; 7 function brackets(left, right){ 8 if(left === '(' && right === ')'){ 9 return true; 10 }else if(left === '[' && right === ']'){ 11 return true; 12 }else if(left === '{' && right === '}'){ 13 return true; 14 } 15 return false; 16 } 17 var top = null; 18 for(var i in s){ 19 if(/[\({\[]/.test(s[i])){ 20 stack.push(s[i]); 21 }else{ 22 if(stack.length > 0){ 23 top = stack.pop(); 24 if(!brackets(top, s[i])){ 25 return false; 26 } 27 }else{ 28 return false; 29 } 30 } 31 } 32 33 if(stack.length !== 0){ 34 return false; 35 } 36 return true; 37 };