Preliminars:
En aquests preliminars expliquem qué és una seqüència ben-parentitzada sobre ,, i quin és el corresponent parèntesis de tancar per a cada parèntesis d’obrir. Si ja teniu clars aquests conceptes, podeu deixar de llegir els preliminars i anar directament a l’exercici en sí.
Una seqüència ben parentitzada és un string format amb els caràcters d’obrir i tancar parèntesis, és a dir i , que cumpleix les següents condicions:
Tot prefix de té més o igual parèntesis d’obrir que de tancar.
té en total la mateixa quantitat de parèntesis d’obrir que de tancar.
Sigui una seqüència ben parentitzada i sigui una posició de a on hi trobem un parèntesi d’obrir (és a dir ). Sigui la posició més petita d’entre les que cumpleixen i tals que el substring té tants parentesis d’obrir com de tancar. Resulta que a posició hi ha d’haver un parèntesis de tancar, i diem que aquest és el corresponent parèntesis de tancar al parèntesis d’obrir que es troba a posició .
Exercici:
Escriviu un programa que rep seqüències ben-parentitzades d’entrada i les torna a escriure per la sortida, però insertant un número darrera de cada parèntesi de manera que:
El primer parèntesi d’obrir està seguit d’un 1, el segon parèntesi d’obrir d’un 2, el tercer parèntesi d’obrir d’un 3, i així successivament.
Per a cada parèntesis d’obrir, el seu corresponent parèntesis de tancar està seguit del mateix número.
Observació: Convé que utilitzeu la
classe stack per a resoldre aquest exercici de
manera eficient.
L’entrada conté un nombre arbitrari de casos, un per línia. Cada cas consisteix en un string ben parentitzat.
Per a cada cas, escriviu en una línia el mateix string, però afegint darrera de cada parèntesis un número, de manera que els parèntesis d’obrir estan identificats començant des de 1 i creixentment de un en un, i els seus corresponents parèntesis de tancar estan identificats pels mateixos números.
Autoria: PRO2
Generació: 2026-01-25T16:33:26.448Z
© Jutge.org, 2006–2026.
https://jutge.org