Ваша місія, якщо ви вирішите прийняти його, щоб додати в мінімальне кількість дужок, дужки, і дужки , щоб зробити даний рядок (що містить тільки круглі дужки, фігурні дужки, і дужки) мають правильну відповідність дужок. Зв'язки доданих символів повинні бути розірвані, маючи максимальну відстань між парними дужками. Ви повинні повернути лише одну правильну відповідь, яка відповідає цим двом правилам; Подальші зв'язки, якщо вони існують, можуть бути порушені будь-яким способом, який ви вважаєте за потрібне.
Приклади:
input output
// Empty String is a legal input
[ [] // Boring example
[()] [()] // Do nothing if there's nothing to be done
({{ ({{}}) // NOT (){}{} (0 + 0 + 0). Maximum distance is 4 + 2 + 0, ({{}})
[([{])]} {[([{}])]} // NOT [([])]{[([])]} or similar
Ви можете написати програму або функцію , отримавши вхід через STDIN як аргумент рядка до вашої функції, який повертає результат у вигляді рядка або друкує його в STDOUT (або найближчу альтернативу). Ви можете необов'язково включати в висновок один зворотний новий рядок.
Ви можете припустити, що рядок введення складається лише з 6 таких символів (або їх відсутність): [](){}
(Вам не потрібно підтримувати <>
)
Це кодовий гольф , найкоротший виграш програми. Звичайно, стандартні лазівки заборонені .