Мне нужно написать (на Java, но язык не важен) функцию, которая принимает в скобках выражение (как строку) в качестве входных данных и возвращает коллекцию индексов всех несогласованных скобок ,Найти индексы непревзойденной скобки
Функция должна использовать только стек как вспомогательную структуру данных.
Пример:
Input: ”d(f(b)())o”
Return:[]
Input: ”**)**(d(f(b)())) **)** o **(**”
Return:[0, 12, 14]
Что такое правильный алгоритм для решения этой проблемы?
Итак, единственный способ решить эту проблему я должен использовать, помимо стека, другую любую структуру (как массив)? – Ewybe
Если вы хотите вернуть индекс ВСЕХ непревзойденных парсеров, то да, вам понадобится что-то вроде массива для их хранения. Если вы хотите, чтобы либо первый, либо непревзойденный, либо да/нет, он был непревзойденным, вы могли бы сделать это без array – TheMerovingian
Хотя вы можете использовать стек как ужасный способ хранения информации. В моем ответе везде, где вы видите 'indices.append()' заменяете 'outputStack.push()'. Таким образом, все ваши значения сохраняются в стеке ('outputStack'). – TheMerovingian