20. Действительные скобки — решение JavaScript — Абу Салех Фейсал
Дан массив скобок. Нам нужно определить, содержит ли массив как открывающие, так и закрывающие скобки.
Шаги:
- Объявите переменную с именем «стек» и сохраните пустой массив.
- Повторите цикл for по заданному массиву и сохраните элементы массива внутри переменной с именем «char».
- Используя регистр переключения, проверьте элементы и, если отдельный элемент является открывающей скобкой, поместите закрывающую скобку в массив стека, который был объявлен ранее.
- Если отдельный элемент не является открывающей скобкой, возьмите последний элемент из массива стека и сохраните его внутри переменной с именем «topElement».
- Если «topElement» не равен «char», вернуть false.
- После завершения итерации проверьте, что длина массива «стек» равна нулю, если она равна нулю, верните 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