@AndrewIvan
Начинающий программист

Найти открывавший и закрывающий элемент?

Нужно найти баланс между открывающим и закрывающим элементом , вообщем код написал но проблема в том что могу приходить одинаковый и открывающий и закрывающей элемент как мне это проверить , получается что в стек идет и открывающий и закрывающий
Например что приходит в качестве аргумента строки ' '|()|' или '111115611111111222288888822225577877778775555666677777777776622222' '

вот даны пары :
const config1 = [['(', ')']];
const config2 = [['(', ')'], ['[', ']']];
const config3 = [['(', ')'], ['[', ']'], ['{', '}']];
const config4 = [['|', '|']];
const config5 = [['(', ')'], ['|', '|']];
const config6 = [['1', '2'], ['3', '4'], ['5', '6'], ['7', '7'], ['8', '8']];
const config7 = [['(', ')'], ['[', ']'], ['{', '}'], ['|', '|']];

сам мой код :
function check(arr, bracketsConfig) {
  let strArr  = bracketsConfig;
  let open = [];
  let close = [];
  let stack = [];

   for (var i = 0;i<strArr.length;i++){
        open.push(strArr[i][0])
        close.push(strArr[i][1])
   }

     for (let j = 0; j<arr.length; j++){
         if(open.includes(arr[j])&& !close.includes(arr[j]) ){
             stack.push(arr[j])
        }else{
            if(close.indexOf(arr[j]) === open.indexOf( stack[stack.length-1] )){
                let p = stack.pop()
                console.log(close.includes(p))
            }else{
                return false
            }
        }
    }
        return stack.length === 0
 }
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы