Giriş
Bazen, kutularım herhangi bir şeye sığmayacak kadar küçük. Bir kutu genişletici yapmana ihtiyacım var! Yani, bu meydan okumada bir kutuyu bir kutu yapan şey.
OOOO
O O
O O
O O
OOOO
Kutunun köşeleri her zaman boşluktur. Kutunun kendisi aynı karakterden yapılabilir. Bu karakter, boşluk hariç herhangi bir yazdırılabilir ASCII karakteri olabilir . İşte bu karakterler:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Yukarıdaki kutunun yan uzunlukları 4, 3'tür . Yan uzunluğun her zaman pozitif olduğunu varsayabilirsiniz . Bu, işlemeniz gereken en küçük kutu olduğu anlamına gelir:
#
# #
#
Bir kutuyu genişletmek için her bir kenar uzunluğunu artırmanız gerekir. Yukarıdaki örnekle bunu adım adım inceleyelim. Önce kutunun üst tarafını alırız, yani:
OOOO
Bunu birer birer genişletiyoruz, böylece:
OOOOO
Bu şimdi kutunun üst ve alt kısmı. Bundan sonra, sol ve sağ taraflarla aynı şeyi yapıyoruz:
O
O
O
Oluyor:
O
O
O
O
Şimdi kutuyu yeniden birleştiriyoruz, bu da şu sonuçlara yol açıyor:
OOOOO
O O
O O
O O
O O
OOOOO
Görev
Bir kutu verildiğinde, 1 genişletin. Kutu birden çok satırda veya bir dizide verilebilir.
Test senaryoları
OOOO OOOOO
O O > O O
OOOO O O
OOOOO
XXXXXX XXXXXXX
X X > X X
X X X X
XXXXXX X X
XXXXXXX
~ ~~
~ ~ > ~ ~
~ ~ ~
~~
Bu kod golf , yani en az bayt ile gönderme kazanır!