Bugün Purim, bir geleneğin hamantaschen (tekil: hamantasch ) adı verilen dolgu ile üçgen şekilli kurabiye vermektir . Başka bir gelenek de ağır içmektir.
Ben en mükemmel fırıncı değilim .... Vermek için çok düzensiz boyutlu hamantaschen ve onlara vermek için çok arkadaş var! Size çerezlerimin bir resmini gönderirsem, kaç tane boyut ve doldurma yaptığımı söyleyebilir misiniz? Ama Purim ve çok fazla kod okumak için çok sarhoş olduğum için, yapabileceğiniz kadar küçük bir kod olması gerekiyor.
Tanımlar
Boyut
Bir hamantasch herhangi bir boyutta olabilir . En küçük hamantasch boyut 1'dir ve şuna benzer:
/\ --
-- \/
Bazen birden fazla hamantaschen çakışabilir . Aşağıdaki şekil iki hamantaschen (bir boyut 1, bir boyut 2) olarak sayılır:
/\
/\ \
----
Bazı hamantaschen doldurma var . Bu, içerideki tüm boşlukları bir karakterle doldurarak belirtilecektir. 1 numara hamantaschen doldurma yapamaz unutmayın.
Biz edecek isim dolum ve büyüklüğüne göre hamantaschen. Biçimi kullanalım <filling> <size>
ve doldurulmamışsa, - <size>
(a yerine bir boşluk kullanabilirsiniz -
, ancak işaretleme bundan hoşlanmaz).
İşte a . 2
, a . 4
ve a - 3
:
/\
/./\
---- /./ \
\../ /./ \
\/ --------
Bunlar a @ 3
, a . 2
ve a - 4
:
/\
/ /\
/\ / /@@\
/..\ / /@@@@\
---- --------
İşte daha zor bir şey. & 2
Üst üste binen eğim nedeniyle beklediğinizden daha az dolgunun nasıl olduğunu görün - 3
? Bir - 1
, & 2
a - 3
ve bir & 4
:
--------
\ \/&/
\ /\/
\/&/
\/
Giriş
Size bir metin dosyası veya tek bir hamantaschen dizesi verilecektir (isteğe bağlı son satırsonu ve isteğe bağlı olarak dolgulu son boşluk).
Sınırları
- İpin geçerli olmasını bekleyebilirsiniz - yani, boşluk olmayan her karakter lezzetli tatlı bir hamantasch'a katkıda bulunur (neden hamur dökülür?).
- Ayrıca yapılmasını bekleyebilirsiniz düzgün dolu olduğunu, her tamamen tutarlı bir ASCII karakter ile dolu olacak hamantasch - - doldurulmamış için ASCII 32 veya doldurulmuş (hariç bir şey 32..127 ya da değil
/
,\
ve-
). - Bu hamantaschen 3 boşlukta istiflenmez . Hepsi
/
ve\
görünür olacak. Tüm-
tarafından engellenmediğini/
ve\
görünür olacaktır. Doldurma sonuncudur. - Tüm hamantaschen yatay çizgilerinin en az yarısına (yuvarlama) sahip olacak.
- Herhangi bir bitişik dolum bloğu sadece onu çevreleyen en küçük hamantasch'i doldurur .
Çıktı
Yukarıdaki kriterleri karşılayan tüm hamantaschen "isimleri" listesini döndürün. Çıktı istediğiniz biçimde olabilir (dize, karma, stdout vb.).
Test senaryoları
Test örneği # 1
Giriş # 1:
/\
/ /\
/\ / /@@\
/..\ / /@@@@\
---- --------
/\
/**\
/*/\*\
/*/..\*\
--------
Çıktı # 1:
. 2
. 2
- 4
@ 3
* 4
Test Çantası # 2
Giriş # 2:
/\----
/\/\*\/
/ /\d\/
------
Çıktı # 2:
- 3
- 2
d 2
- 1
* 2
- 1
Test # 3
Giriş # 3:
----
\/\/
/\/\ /\
---- /::\
----
Çıktı # 3:
- 1
- 1
- 2
- 1
- 1
- 2
: 2
Test # 4
Giriş # 4:
/\/\
/ /\$\
-/--/\\
--/--\
/xxx/\
/xxx/##\
---/----\
/ \
--------
Çıktı # 4:
$ 2
x 4
- 3
- 2
- 4
- 1
- 1
# 2
Geçersiz Test Durumu # 5
Giriş:
/\
\/
Çıktı:
Bunu halletmenize gerek yok.
/
ve \
ve -
koz dolum hep olacak.
(1,0)
kapalıdır +1
. Yine de ne demek istediğini biliyorum ve katılmıyorum. İki üst s'nin sadece sağ üst ve sol üst değil (2, 2)
, a'nın üst merkezi olan hangi gösterge var ? Göremediğim bir şey yok. Ve aynı mantık için de geçerlidir . Mümkün olan maksimum hamantaschen varsaymak için bir kural eklemek istemiyorsanız ...- 2
- 1
(3, 2)