Вы менеджер проекта. Однажды один из ваших программистов сошел с ума ( не по вашей вине ) и взял все выражения в кодовой базе и добавил к ним случайные скобки, прежде чем выйти на месте, разглагольствуя о вашей некомпетентности ( также не по вашей вине ). Это было бы легко исправить, однако, по какой-то причине вы не используете контроль версий ( совсем не ваша вина ). И по какой-то причине никто из других программистов не хочет просматривать каждое выражение, чтобы исправить несоответствующие скобки ( кстати, это не ваша ошибка ). Программисты в эти дни думают про себя. Вам придется сделать это самостоятельно. Ужас! Такие задачи должны были быть под вами ...
Ввод будет состоять из одной строки, которая будет содержать несколько левых скобок ( ( [ {
) и правых скобок ( ) ] }
). Он также может, но не всегда, содержать комментарии ( /* */
) и строковые литералы ( " "
или ' '
), а также различные числа, буквы или символы.
Будет по крайней мере одна скобка (вне комментария или строкового литерала), которая не имеет противоположной противоположности (вне комментария или строкового литерала). Например, странствующий }
без {
предварительного. Другой пример: у (
которого нет )
потом. Ваша программа заменит пробелом минимальное количество скобок, необходимое для совпадения скобок.
Примеры:
(4 + (2 + 3))]
==> (4 + (2 + 3))
(квадратная скобка в конце)
][][[]]
==> [][[]]
(квадратная скобка в начале)
("Hel(o!"))
==> ("Hel(o!")
(скобка в конце)
( /* )]*/
==> /* )]*/
(скобка в начале)
{()]
==> ()
(фигурная скобка и квадратная скобка)
- Ввод может быть получен любым удобным способом (STDIN, аргумент командной строки, чтение из файла и т. Д.)
- Если существует несколько способов устранения несоответствия с одинаковым количеством удалений, любой из них является приемлемым.
- В скобках будут только несоответствия. Строковые литералы и комментарии всегда будут правильно сформированы.
- Название происходит из этой темы
- Никогда не будет никаких кавычек в комментариях, кавычек в кавычках, комментариев в комментариях или комментариев в кавычках.
Это код гольф, поэтому выигрывает минимальное количество байтов. Задавайте вопросы в комментариях, если спецификация не ясна.
("foo (\") bar")
)?
{{(})
должен быть { }
или эквивалентен, так как сценарий открытия подразумевает, что код работал с самого начала, и {(})
считается как несовпадающие скобки в каждом языке программирования, который я знаю (то есть «вызывает стазис» ??). Но тогда я уже написал ответ, поэтому я пристрастен.