заданной строки скобок мы должны сделать 2 вида операции:проверить, если строку скобки уравновешиваются делают определенную операцию на строке
- flip- изменяет I-й скобки в противоположном (лево- > правые, право-> слева)
- регистрации по прибытию, если строка является сбалансированным выражением скобки
длиной струны при макс 30000.
Нет операцию должны быть проведено I с при макс. 100000.
Какая структура данных должна использоваться для решения этой проблемы?
Факс:Является ли сегментное дерево подходящей структурой данных?
Если да, то как его использовать? не
Пример
строка =() ((
нет работы = 4
- флип-4 {новая строка()()}
- проверка {строка сбалансирован}
- flip 2 {новая строка становится ((()}
- проверка {строка не сбалансирована}
Возможно, неверно истолкование вопроса, но вы ищете алгоритм, который дает несбалансированную строку, превращает его в сбалансированную строку с минимально возможным количеством переворотов? Или вы только ищете способ проверить, сбалансирована ли строка? – user2464424
@ user2464424 указанная строка может быть сбалансированной/неуравновешенной. Алгоритм, с которым я смотрел вперед, получает два флип операции и проверяет, может ли быть любое количество флипов или проверка (не более 100000) для каждой проверки. Мне нужно определить, сбалансирована ли целая строка и для каждого флип ii нужно перевернуть i-й символ. –
Почему вы начинаете с флип перед проверкой строки? И почему вы продолжаете проходить проверку? И как вы узнаете, какого персонажа переворачивать? Проверяет ли значение true/false или положение первой проблемы? –