Informatika gyűjtemény

Egy szinttel feljebb Zárójelek

2004050607080910

NézetNyomtat

Zárójelek

Stanford Local Programming Contest, 2004. 5. feladat
Megadjuk a "rendes zárójelezések" definícióját:
  • az üres sorozat rendes zárójelezés
  • ha s rendes zárójelezés, akkor (s) és [s] is az
  • ha a és b rendes, akkor ab is rendes
  • a többi sorozat nem rendes zárójelezés
Például a következő zárójelezések rendesek: (), [], (()), ()[], ()[()],
ezek pedig nem:(, ], )(, ([)], ([(].

Feladat

Zárójelek egy adott sorozatára adjuk meg a leghosszabb rendes zárójelezész leíró részsorozat hosszát!

Bemenet

A bemenet több tesztesetet tartalmaz. A tesztesetek egy-egy sorban vannak, és csak a "(", ")", "[", és "]" karaktereket tartalmazzák; a bemeneti sorok hossza legfeljebb 100. A bemenet végét egy az "end" szöveget tartalmazó sor jelzi.

Kimenet

A kimenet minden sorába a megfelelő tesztesetre számolt maximális részsorozat hosszát kell írni.

Példák

A ([([]])] sorozatban a leghosszabb rendes zárójelezést adó részsorozat: [([])].
brackets.inbrackets.out
((()))
()()()
([]])
)[)(
([][][)
end
6
6
4
0
6

Tesztadatok