Símbolos de agrupamento Posteriormente equilibrado de comprimento máximo

Considere B como uma sequência de símbolos de agrupamento (,), [,], {e}. B é chamado de sequência Balanceada se tiver comprimento 0 ou B tiver uma das seguintes formas: {X} Y ou [X] Y ou {X} Y, em que X e Y são Balanceados. Exemplo para Balanceado: () - {[] ()} [] - ...

Agora, a questão é encontrar um algoritmo eficiente para encontrar a subsequência equilibrada de comprimento máximo (não necessariamente contígua) de uma determinada entrada, que é uma sequência desses símbolos de agrupamento.

Por exemplo, se a entrada for() {([)] {(])}} [] , uma das subsequências de comprimento máximo é() {[] {()}} []

Tenho quase certeza de que a solução é DP, mas mesmo assim eu a resolvo, encontro exemplos nos quais meu algoritmo não funciona. tenho certeza de que existe apenas uma abordagem, que é uma combinação de DP e Divide and Conquer. Mas não é eficiente porque, de qualquer maneira, a parte de D&C vai resolver alguns problemas sobrepostos repetidamente.

questionAnswers(1)

yourAnswerToTheQuestion