Последовательность круглых скобок

Назовем скобочной последовательностью строку, состоящую круглых скобок. Например, )(((()(()((. Гарантируется, что в этой задаче в функцию передаются только такие строки.

Правильная скобочная последовательность (ПСП) формально определяется так:

  1. Пустая строка является ПСП.
  2. Если строка s является ПСП, то строка (s) тоже являтся ПСП. Например, (()())() — ПСП, значит ((()())()) — тоже ПСП
  3. Если строка s является ПСП и строка t тоже является ПСП, то строка st — ПСП. Например, (()()) и ((())) — ПСП. Тогда (()())((())) — тоже ПСП.

На более простом языке, ПСП — это строка, в которой на каждую открывающуюся скобочку есть соответствующая закрывающая скобочка.

Реализуйте функцию isValidParentheses, которая принимает строку и определяет, является она ПСП.

Примеры

console.log(isValidParentheses("")); // true console.log(isValidParentheses("()")); // true console.log(isValidParentheses("()(()())")); // true console.log(isValidParentheses("(")); // false console.log(isValidParentheses(")")); // false console.log(isValidParentheses("((())")); // false console.log(isValidParentheses("()))")); // false

У этой задачи есть продолжение — правильная скобочная последовательность из разных скобок.