Нам випала нагода написати програмне забезпечення для Bracketeer™, старого, але потужного мейнфрейма. Програми, що на ньому працюють, написані пропрієтарною мовою. Багато в її синтаксисі нам знайоме, але ми помічаємо безліч дужок: квадратних, фігурних і круглих. Попри всю свою потужність, Bracketeer™ позбавлений гнучкості. Якщо у вихідному коді є хоч одна незбалансована дужка (квадратна, фігурна чи кругла), Bracketeer™ падає і його доводиться перезавантажувати. Щоб уникнути такого розвитку подій, ми починаємо писати код, який перевіряє, що квадратні, фігурні та круглі дужки збалансовані, перш ніж спробувати запустити його на Bracketeer™.
Дано рядок тексту (англ. string), що містить квадратні дужки [], фігурні дужки {}, круглі дужки () або будь-яку їхню комбінацію. Перевірте, що всі пари збігаються та правильно вкладені одна в одну. Будь-які інші символи слід ігнорувати. Наприклад, "{what is (42)}?" збалансований, а "[text}" ні.
Можна припустити, що вхідні дані isBalanced ніколи не містять понад 10 рівнів вкладеності.
Цю вправу цілком можна розвʼязати без allocator, але зауважмо: функція isBalanced не може повертати просто bool, бо тести використовують try.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Zig, а також 104 вправи та справжнє наставництво від людей, і все це безкоштовно.