Write a function that takes a string of parentheses, and determines if the order of the parentheses is valid. The function should return true
if the string is valid, and false
if it's invalid.
"()" => true
")(()))" => false
"(" => false
"(())((()())())" => true
function validParentheses(parens) {
const object = {
')': "(",
'(' : 'something else'
}
const array = parens.split('');
const result = array.reduce(function(acc,cur){
if(acc[acc.length-1] === object[cur]) {
acc.pop();
} else {
acc.push(cur);
}
return acc;
},[]);
return (result.length == 0) ? true : false;
}
function validParentheses(parens){
var n = 0;
for (var i = 0; i < parens.length; i++) {
if (parens[i] == '(') n++;
if (parens[i] == ')') n--;
if (n < 0) return false;
}
return n == 0;
}
만약에 ) 의 갯수가 ( 를 넘을시 바로 false
를 반환한다.
( 갯수와 ) 갯수가 같을 때만 true
를 반환한다.