Функция, которая принимая строку из скобок возвращает true или false взависимости от его корректного порядка, например:
validBraces( "(){}[]" ) => true
validBraces( "(}" ) => false
validBraces( "[(])" ) => false
validBraces( "([{}])" ) => true
В общем у меня есть свое решение данной задачи:
function validBraces(braces){
var arr = braces.split('');
for(var i = 0; i < arr.length; i++) {
if(arr[i] == "(" && arr[i+1] == ")" || arr[i] == "{" && arr[i+1] == "}" || arr[i] == "[" && arr[i+1] == "]"){
return true;
}else if (arr[i] == "(" && arr[arr.length-1] == ")" && arr[i+1] == "[" && arr[i+2] == "{" && arr[i+3] == "}" && arr[i+4] && "]"){
return true;
}
return false;
}
}
Но такое решение не совсем идеальное, т.к задавая другие корректные расстановки он покажет false, как нормально реализовать эту функцию?