Ctrl K

Снять внешние скобки

Лёгкая
Дана правильная скобочная последовательность s из символов ( и ): каждой открывающей скобке соответствует закрывающая после неё. Разрежьте s на блоки верхнего уровня — минимальные непустые куски, каждый из которых сам по себе правильная последовательность. Иначе говоря, блок заканчивается там, где число открытых скобок снова становится нулём. Например, (()())(()) состоит из блоков (()()) и (()). У каждого блока уберите первую и последнюю скобку и верните склейку того, что осталось, в исходном порядке.
Пример 1
s='(())((()))' → '()(())'

Блоки — «(())» и «((()))». Без внешних скобок они превращаются в «()» и «(())», вместе — «()(())».

Пример 2
s='()()()' → ''

Три блока «()», у каждого внутри пусто — результат пустая строка.

Пример 3
s='(()()())' → '()()()'

Вся строка — один блок, после снятия внешней пары остаётся «()()()».

Ограничения
  • 1 ≤ s.length ≤ 10⁵
  • s[i] — это ( или )
  • s — правильная скобочная последовательность
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиБаланс скобок ЛёгкаяОдинаковый текст после стираний ЛёгкаяЛопающиеся пары ЛёгкаяВзаимное уничтожение регистров ЛёгкаяСколько шагов до корневой папки Лёгкая
загружаем Python…
Вход
s='(())((()))'
Ожидается
'()(())'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 104 теста на сервере, включая скрытые.