20. Действительные скобки — решение JavaScript — Абу Салех Фейсал

Дан массив скобок. Нам нужно определить, содержит ли массив как открывающие, так и закрывающие скобки.

Шаги:

  1. Объявите переменную с именем «стек» и сохраните пустой массив.
  2. Повторите цикл for по заданному массиву и сохраните элементы массива внутри переменной с именем «char».
  3. Используя регистр переключения, проверьте элементы и, если отдельный элемент является открывающей скобкой, поместите закрывающую скобку в массив стека, который был объявлен ранее.
  4. Если отдельный элемент не является открывающей скобкой, возьмите последний элемент из массива стека и сохраните его внутри переменной с именем «topElement».
  5. Если «topElement» не равен «char», вернуть false.
  6. После завершения итерации проверьте, что длина массива «стек» равна нулю, если она равна нулю, верните true, а если она не равна нулю, верните false.
  • Время выполнения: 86 мс.
  • Память: 42,8 МБ.
COPY
/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
     let stack = [];

     for(let i = 0; i < s.length; i++) {
         let char = s[i];

         switch(char) {
             case "(": stack.push(")");
             break;

             case "{": stack.push("}");
             break;

             case "[": stack.push("]");
             break;

             default: 
             let topElement = stack.pop();
             if(char !== topElement) {
                 return false;
             }
         }

     }
     return stack.length === 0;
};

👉 Поддержите меня: https://www.buymeacoffee.com/abusalehfaysal

👉 Канал на YouTube: https://www.youtube.com/@thebacklogprogrammer

👉 Ссылка на плейлист: https://youtube.com/playlist?list=PLUnklBXn8NSefCpBaLe39mds6dQx-tDDD

👉 Свяжитесь со мной (LinkedIn): https://www.linkedin.com/in/abusalehfaysal

👉 Подпишитесь на нашу страницу в LinkedIn: https://www.linkedin.com/company/thebacklogprogrammer/

👉 Поставьте лайк нашей странице в Facebook: https://www.facebook.com/thebacklogprogrammer/

👉 Присоединяйтесь к нашему сообществу (группа Facebook): https://www.facebook.com/groups/5500588936676942/

👉 Подписывайтесь на меня: https://www.facebook.com/AbuSalehFaysal10

👉 Твиттер: https://twitter.com/AbuSalehFaysal

👉 Блог Абу Салеха Фейсала: https://abusalehfaysal.hashnode.dev/

👉 Hasnode: https://hashnode.com/@AbuSalehFaysal

👉 Сообщество разработчиков: https://dev.to/abusalehfaysal

👉 freeCodeCamp: https://www.freecodecamp.org/abusalehfaysal

👉 Среда: https://abusalehfaysal.medium.com/

👉 GitHub: https://github.com/AbuSalehFaysal
👉 GitLab: https://gitlab.com/AbuSalehFaysal