eolymp
bolt
Try our new interface for solving problems
Məsələlər

Kompilyator

Kompilyator

Bir çox kompilyatorların iş prinsiplərindən biri də verilmiş kodda mötərizələrin düzgün ardıcıllıqda açılıb-bağlandığını yoxlamaqdır. Verilmiş kod fraqmentində bunu yoxlamaq üçün, öncə mötərizə simvollarından başqa digər simvolları silmək, yəni, yalnız mötərizələrdən ibarət sətir (string) əldə etmək lazımdır. Daha sonra bu sətrin düzgün mötərizə ardıcıllığı olub-olmadığını “stack” strukturundan istifadə etməklə yoxlamaq olar. Sizin tapşırığınız verilmiş sətirdə mötərizə simvollarından başqa digər simvolları sildikdə qalan sətri \par Məsələn: "for()\{insta$[]$if()\{\}else\{\}\}" sətri verildikdə, cavab "()\{$[]$()\{\}\{\}\}" sətri olacaqdır. Sadəlik üçün verilən sətirdə yalnız kiçik və böyük latın hərfləri, $0$-dan $9$-a rəqəmlər və ()$[]$\{\} – $6$ növ mötərizə simvolları ola bilər. \subsection{\bfseries{Giriş verilənləri}} Yeganə bir sətir ($string$) – $S$ verilir ($2 \leq |S| \leq 1000$, burada |$S$|, $S$ sətrinin uzunluğunu bildirir). $S$ yalnız kiçik və böyük latın hərfləri, $0$-dan $9$-a rəqəmlər və ()$[]$\{\} simvollarından ibarət ola bilər. \subsection{\bfseries{Çıxış verilənlər}} Çıxışa verilmiş sətirdə mötərizə simvollarından başqa digər simvolları sildikdə qalan sətri verin. \subsection{\bfseries{Qiymətləndirmə}} Bu tapşırıqda hər bir düzgün testə görə bal verilir. Maksimum bal $100$-dür. Nümunələrdə verilmiş testlər sistem testlərinə daxil deyil. \subsection{\bfseries{Nümünənin izahatı}} Bu, yuxarıda məsələnin şərtində verilmiş nümunədir. \par Bu nümunədə heç bir mötərizə simvolu olmadığına görə cavab boş sətirdir.
Zaman məhdudiyyəti 0.5 saniyə
Yaddaşı istafadə məhdudiyyəti 256 MiB
Giriş verilənləri #1
for(){inta[]if(){}else{}}
Çıxış verilənləri #1
(){[](){}{}}
Giriş verilənləri #2
intmain({)}
Çıxış verilənləri #2
({)}
Giriş verilənləri #3
long
Çıxış verilənləri #3