Найти в Дзене

Задачка Valid Parentheses

LeetCode(JavaScript) Дана строка str содержащая только символы (,),{,},[ и ], требуется опредлить является ли строка валидной. Строка считается валидной если выполняются следующие условия: Примеры: Чтобы решить данную задачу вначале разобьем строку, так сказать сплитуем, также нам нужен объект с помощью которого будем понимать что открывающейся скобке определенного типа, соответствует закрывающаяся того же типа и заведем пустой массив так называемый Стек. В целом алгоритм простой, мы проходимся по массиву со скобочками, если встречаем открывающуюся то закидываем ее в Стэк, в противном случае если встречаем закрывающую то проверяем является ли эта скобка парой для последней помещенной в стэк открывающей скобки, если нет то возращаем false (строка не валидна) если же мы прошлись по всему массиву и не нашли ошибок а так же проверили все помещенные в Стек открывающие скобки то возвращаем true и считаем что строка валидна. //Решение Codesandbox P.S.: Свои варианты решения пишите в коммента

LeetCode(JavaScript)

Дана строка str содержащая только символы (,),{,},[ и ], требуется опредлить является ли строка валидной. Строка считается валидной если выполняются следующие условия:

  1. Открытые скобки должны закрываться скобками того же типа.
  2. Открытые скобки должны закрываться в правильном порядке.
  3. Каждой закрывающей скобке соответствует открытая скобка того же типа.

Примеры:

  • str = "()" // true
  • str = "()[]{}" // true
  • str = "(]" // false

Чтобы решить данную задачу вначале разобьем строку, так сказать сплитуем, также нам нужен объект с помощью которого будем понимать что открывающейся скобке определенного типа, соответствует закрывающаяся того же типа и заведем пустой массив так называемый Стек.

В целом алгоритм простой, мы проходимся по массиву со скобочками, если встречаем открывающуюся то закидываем ее в Стэк, в противном случае если встречаем закрывающую то проверяем является ли эта скобка парой для последней помещенной в стэк открывающей скобки, если нет то возращаем false (строка не валидна) если же мы прошлись по всему массиву и не нашли ошибок а так же проверили все помещенные в Стек открывающие скобки то возвращаем true и считаем что строка валидна.

//Решение Codesandbox

P.S.: Свои варианты решения пишите в комментариях