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.
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