Kontrola závorek

Vývojáři rádi píšou kód v editoru, který jim pomáhá nedělat tolik syntaktických chyb. Nejčastěji se setkáme s kontrolou dvojic závorek nebo html tagů, kde editor kontroluje, že blok začíná stejným tagem jako končí. Napište program, který přijímá řetězec znaků, vyhodnocuje pravidla níže a na výstup vypíše "ano" nebo "ne" (jestli je řetězec vyvážený nebo ne).

Pravidla:

  • Závorky patří do množiny znaků {, }, [, ], (, ).

  • Prázdný řetězec je vyvážený.
  • A je vyvážený řetězec - [A], {A}, (A) jsou vyvážené, pokud A je vyvážené

Příklad:

  • Vstup: (abc[[d]e]fe, {c})
  • Výstup: ano
  • Vstup: [poo[s)foo]
  • Výstup: ne
Co se touto úlohou naučím a o čem si něco přečíst?
Kde se s touhle úlohou typově setkám?
  • Parsování HTML, XML
  • Procházení datové struktury Graf.
Úroveň znalostí
Začátečník