Informática, perguntado por thaiseamorimjf, 1 ano atrás

Preciso saber como se faz esse tipo de questão

Anexos:

Soluções para a tarefa

Respondido por carlosvinicius9
1
Problemas que envolvem verificar o balanceamento de uma expressão contendo parênteses, colchetes, chaves, etc, são geralmente resolvidos usando a estrutura de dados pilha.

Mas como nesse caso só há parênteses na expressão, o problema fica mais fácil e pode ser resolvido usando um simples contador que nos dirá quantos parênteses ainda precisam ser fechados.

Seja C o caractere que estamos lendo no momento:

- Se ele for igual a '(', incrementamos o contador, já que esse parêntese precisa ser fechado;

- Se ele for igual a ')', decrementamos o contador, já que esse parêntese está fechando o último que foi aberto. Observe que se o contador se tornar negativo, significa que não há parêntese a ser fechado, então a expressão está desbalanceada.

- Caso contrário, pare a repetição.

Agora só falta mais uma verificação: Se ao final da repetição o contador for maior que zero, isso significa que parênteses que foram abertos não foram fechados.

Agora é só imprimir a resposta ;)

Segue o código: http://ideone.com/41A9tC
Perguntas interessantes