Mötərizə Yoxlaması
Sizə köhnə, lakin çox güclü bir meynfreym (mainframe) olan Bracketeer™ üçün proqram təminatı yazmaq imkanı verilib. Bu maşında işləyən proqramlar xüsusi və gizli bir dildə yazılır. Bu dilin sintaksisində ən çox diqqət çəkən şey çoxlu sayda mötərizələrin – kvadrat [], bəzəkli {} və dairəvi () mötərizələrin istifadə edilməsidir.
Bracketeer™ güclü olsa da, bir o qədər də həssasdır. Əgər mənbə kodunda hər hansı bir mötərizə cütü düzgün bağlanmayıbsa, Bracketeer™ çökür və yenidən başladılmalıdır. Belə fəlakətlərin qarşısını almaq üçün siz Bracketeer™-ə göndərilməzdən əvvəl kodu analiz edib mötərizələrin balanslı (balanced) olub-olmadığını yoxlayan proqram yazmalısınız.
Sizin vəzifəniz verilmiş sətirdəki bütün kvadrat [], bəzəkli {} və dairəvi () mötərizə cütlərinin düzgün ardıcıllıqla açılıb-bağlandığını yoxlamaqdır.
(Diqqət: Mötərizələrdən başqa sətirdəki digər bütün simvollar, hərflər və boşluqlar sadəcə iqnor edilməlidir).
Balanslı (Paired) olma qaydaları:
Hər açılan mötərizənin özünə uyğun bağlanan tayı olmalıdır.
Mötərizələr düzgün ardıcıllıqla bağlanmalıdır. Ən son açılan mötərizə ən birinci bağlanmalıdır. (Məsələn:
[{}]doğrudur, lakin[{]}yanlışdır).
Nümunələr:
"{what is (42)}?"-> Balanslıdır (true)."[text}"-> Balanssızdır (false).
Giriş verilənləri:
Tək bir sətirdə yoxlanılmalı olan kod sətri (S) verilir. (Sətir tamamilə boş da ola bilər, bu halda balanslı sayılır).
Çıxış verilənləri:
Əgər sətirdəki mötərizələr balanslıdırsa true, əks halda false çap edin.
Məhdudiyyətlər
0 ≤ |S| ≤ 10⁶
S istənilən ASCII simvol ehtiva edə bilər
Yalnız
[],{},()mötərizələri yoxlanılır, qalan simvollar iqnor edilirBoş sətir →
true