Учитывая строку скобок, мы должны выполнить 2 вида операций:
- flip- меняет i-ю скобку на противоположную (left->right , right->left)
- check- если строка является сбалансированным выражением в скобках
длина строки не более 30000.
Количество выполняемых операций не превышает 100 000.
какую структуру данных следует использовать для решения такой задачи?
Является ли дерево сегментов подходящей структурой данных?
Если да, то как его использовать?
Пример
строка = ()((
количество операций=4
- перевернуть 4 {новая строка ()()}
- проверить {строка сбалансирована}
- flip 2{новая строка становится ((()}
- проверить {строка не сбалансирована}
flip
иcheck
, или (2) алгоритмы, которые с учетом этих двух функций могут исправить несбалансированную строку скобок, или (3) и то, и другое? - person tobias_k   schedule 08.08.2016