Görev
Boş olmayan küçük harf ASCII harfleri verilen a
- z
ilk karakterini alın ve:
- İkinci karakterin kopya kareleriyle çevreleyen ,
- Bunu, üçüncü karakterden oluşan bir kopya elmasıyla kuşatmak,
- Etrafı dördüncü karakterden oluşan bir kare kopya ile çevreleyen …
… Dize sonuna kadar kare ve elmas sınırları arasında değişen. Sınırlar arasındaki boş alan ASCII boşlukları ( ) ile temsil edilmelidir .
Kare kenarlık eklemek için , geçerli tüm "çalışma dizisi" nin tam çevresine bir kare çizin:
sssssssssss
t s t s
t t s t t s
t t s t t s
t aaa t s t aaa t s
t aca t => st aca ts
t aaa t s t aaa t s
t t s t t s
t t s t t s
t s t s
sssssssssss
Elmas kenarlık eklemek için , en dış kareye çapraz olarak dokunan , ancak ortogonal olmayan bir ortalanmış elmas şekli çizin :
s
s s
s s
s s
s s
s s
s s
wwwwwwwwwww s wwwwwwwwwww s
w o w s w o w s
w o o w s w o o w s
w o o w s w o o w s
w o eee o w s w o eee o w s
wo eme ow => s wo eme ow s
w o eee o w s w o eee o w s
w o o w s w o o w s
w o o w s w o o w s
w o w s w o w s
wwwwwwwwwww s wwwwwwwwwww s
s s
s s
s s
s s
s s
s s
s
Programınız son diziyi çıkarmalı.
- Her satır herhangi bir miktarda sonda boşluk içerebilir.
- Satırları temsil eden dizelerin bir listesini ya da isteğe bağlı izleyen bir yeni satırı olan yeni bir yeni satırla ayrılmış bir dize yazdırabilirsiniz.
- Önde gelen / sondaki boş satırlara izin verilmez.
- Önde gelen boşluk sütunlarına da izin verilmez.
Bu kod golfü . Bayt cinsinden en kısa kod kazanır.
Test durumları
Yukarıdaki örnekler için çıkış beklenmektedir cat
, cats
, meow
ve meows
, okuma sırasına göre. Kullanılmaya değer diğer bazı durumlar:
Giriş için
a
, programınız çıkmalıdır:a
Giriş için
ab
, programınız çıkmalıdır:bbb bab bbb
Giriş için
codegolf
, programınız çıkmalıdır:fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff f l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l ooooooooooooooooooooooooooo l f f l o g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g eeeeeeeeeee g o l f f l o g e d e g o l f f l o g e d d e g o l f f l o g e d d e g o l f f l o g e d ooo d e g o l f fl og ed oco de go lf f l o g e d ooo d e g o l f f l o g e d d e g o l f f l o g e d d e g o l f f l o g e d e g o l f f l o g eeeeeeeeeee g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g g o l f f l o g o l f f l ooooooooooooooooooooooooooo l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l l f f l f fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Referans uygulaması
Program çıktılarının uyması gereken bazı Julia kodları yazdım (en azından görsel olarak). Çevrimiçi deneyin!
\r\n
) yerine her biri ( ) olarak sayma şansınız var mı\n
?