Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 28.06.2020
Сообщений: 7
1

Найти минимальное количество ходов, необходимое, чтобы получить правильную скобочную последовательность

28.06.2020, 18:17. Показов 1833. Ответов 0

Author24 — интернет-сервис помощи студентам
Нужна срочная помощь в решении.


Вам задана скобочная последовательность s длины n, где n четное (без остатка делится на 2). Строка s состоит из n2 открывающих скобок '(' и n2 закрывающих скобок ')'.

За один ход вы можете выбрать ровно одну скобку и передвинуть ее в начало или в конец строки (т.е. вы можете выбрать некоторый индекс i, удалить i-й символ из s и вставить его перед или после всех остальных символов в s).

Ваша задача — найти минимальное количество ходов, необходимое, чтобы получить правильную скобочную последовательность из s. Можно доказать, что ответ всегда существует при данных ограничениях.

Напомним, что такое правильная скобочная последовательность:

«()» — правильная скобочная последовательность;
если s — правильная скобочная последовательность, то «(» + s + «)» — правильная скобочная последовательность;
если s и t — правильные скобочные последовательности, то s + t — правильная скобочная последовательность.
Например, «()()», «(())()», «(())» и «()» являются правильными скобочными последовательностями, а «)(», «()(» и «)))» — нет.

Вам нужно ответить на t независимых наборов тестовых данных.

Входные данные
Первая строка теста содержит одно целое число t (1≤t≤2000) — количество наборов тестовых данных. Затем следуют t наборов тестовых данных.

Первая строка набора тестовых данных содержит одно целое число n (2≤n≤50) — длину s. Гарантируется, что n четное. Вторая строка набора тестовых данных содержит строку s, состоящую из n2 открывающих и n2 закрывающих скобок.

Выходные данные
Для каждого набора тестовых данных выведите ответ на него — минимальное количество ходов, необходимое, чтобы получить правильную скобочную последовательность из s. Можно доказать, что ответ всегда существует при данных ограничениях.

Пример
входные данные
4
2
)(
4
()()
8
())()()(
10
)))((((())

выходные данные
1
0
1
3

Примечание
В первом наборе тестовых данных примера достаточно передвинуть первую скобку в конец строки.

В третьем наборе тестовых данных примера достаточно передвинуть последнюю скобку в начало строки.

В четвертом наборе тестовых данных примера мы можем выбрать три последние открывающие скобки, переместить их в начало строки и получить «((()))(())».
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2020, 18:17
Ответы с готовыми решениями:

Количество способов вставить скобки в правильную скобочную последовательность
Здравствуйте! Задача: Вводится строка из символов "(" и ")" .Строка всегда будет правильной...

Сформировать правильную скобочную последовательность
Здравствуйте, помогите, пожалуйста, решить. Срочно Назовём скобочную последовательность,...

Найти количество операций необходимое для того, чтобы получить из второй строки первую
Добрый вечер! Помогите, пожалуйста, написать программу для задачи: Заранее большое спасибо!

Минимальное количество топлива, необходимое для дозаправки самолету в пункте В, чтобы долететь из пункта А в пункт С
Вот сама задача... Грузовой самолет должен пролететь с грузом из пункта А в пункт С через пункт В....

0
28.06.2020, 18:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2020, 18:17
Помогаю со студенческими работами здесь

Сколько нужно убрать из данной последовательности скобок, чтобы получить правильную последовательность?
Сколько надо убрать скобок из данной последовательности скобок что бы получить правильную...

Найти минимальное количество ходов коня(со сбитием фигур)
Добрый вечер! Исходная задача: Имеется шахматная доска N<=1 000 на M <=1 000 клеток (верхний...

Найти последовательность ходов коня, чтобы попасть на целевую клетку
Задача: шахматная доска, дана начальная клетка на доске(откуда) и дана целевая клетка(куда...

Найти минимальное количество операций, необходимое для возведения k в степень n
Кто-нибудь, перепишете на с++ пожалуйста var N, i, k, count, m: byte; begin ...

Проверить, содержит ли строка правильную скобочную запись
Дана символьная строка, содержащая скобки четырех видов ( {}, , () и <> ) и заканчивающаяся точкой....

Найти количество теплоты, необходимое газу, чтобы его давление увеличилось в 3 раза
7.2 двухатомный идеальный газ 2 моль нагревают при постоянном объеме до Т=289 К. найти количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru