Her programcı parantezlerin []{}()<>
gerçekten eğlenceli olduğunu bilir . Bu eğlenceyi şiddetlendirmek için iç içe parantez grupları sevimli ve bulanık diyagramlara dönüştürülebilir.
Diyelim ki, dengeli parantez içeren bir dize var [{][<(]})>(())
. Birinci adım, ipi saat yönünde 45 derece döndürmektir. (Mathematica'da bu neredeyse ile yapılabilir Rotate[ur_string,-pi/4]
). İşte ilk adımın sonucu:
[
{
]
[
<
(
]
}
)
>
(
(
)
)
Sonra her karakter arasına çapraz bir boşluk ekleyin.
[
{
]
[
<
(
]
}
)
>
(
(
)
)
Sonra, en soldaki parantez ile başlayın ve suç ortağıyla onun arasında bir kare çizin.
+---+
| |
| { |
| |
+---+
[
<
(
]
}
)
>
(
(
)
)
+
Gerekirse önceki karakterlerin üzerine yazarak, bu işlemi her bir parantez çifti ile tekrarlayın .
+---+
| |
| +-+---------+
| | | |
+-+-+ |
| |
| [ |
| |
| < |
| |
| ( |
| |
| ] |
| |
+-----------+
)
>
(
(
)
)
Her şeyi güzel ve kare hale getirene kadar devam edin.
+---+
| |
| +-+---------+
| | | |
+-+-+ |
| |
| +-----+ |
| | | |
| | +---+-+---+
| | | | | |
| | | +-+-+-+ |
| | | | | | | |
| +-+-+-+ | | |
| | | | | |
+-----+-+---+ | |
| | | |
| +-----+ |
| |
+---------+
+-----+
| |
| +-+ |
| | | |
| +-+ |
| |
+-----+
Giriş
Giriş, her bir braketten biri olmak üzere tek bir dengeli parantez satırı olacak ve başka karakter olmayacak []{}()<>
. Her braket tipi ayrı ayrı dengelenir, ancak farklı türler üst üste gelebilir (karelerin ilginç görünmesini sağlayan şey budur). Sondaki yeni satır isteğe bağlıdır.
Çıktı
Çıktı parantez dizisinden oluşturulan kilitleme kare desen olacaktır. Sondaki boşluklar ve sondaki yeni satır isteğe bağlıdır, ancak önde gelen boşluk olmamalıdır.
Hedef
Bu kod golf, en az bayt kazanıyor.
[[]]
üst üste binen iki kareyi çıkarabilir miyiz, yoksa bir kareyi diğerinin içine koymak zorunda mıyız?