Вы можете пройти через это символ за символом. Если вы оставите одну строку, которая является строкой результата, одну строку, которая является строкой сброса, и логическое значение того, удаляете ли вы сейчас или нет.
Затем для каждого символа, если логическое значение истинно, вы добавляете его в строку удаления, а если оно ложное, вы добавляете его в настоящую строку. Если это открытая скобка, вы добавляете ее в строку удаления и устанавливаете логическое значение true; если это закрывающая скобка, вы устанавливаете строку удаления на "" и устанавливаете логическое значение на false.
Наконец, в конце вы получаете строку удаления, ЕСЛИ открыта скобка, но не закрыта.
Если вы хотите иметь дело с несколькими скобками, вместо логического значения используйте целочисленный подсчет того, сколько вы открыли, но не закрыли.