Bir biz olsak da üçgen ızgaralar tekme , ben eşdeğer olduğunu işaret etmek istiyorum Polyominoes üçgen ızgara üzerinde. Bunlara çok elmas denir ve eşkenar üçgenleri kenarları boyunca birbirine yapıştırarak oluşturulan şekillerdir. Bu meydan okumada, bir üçgen ızgaranın hangi alt kümelerinin çok elmaslı olduğuna ve içlerinde delik olup olmadığına karar vereceksiniz. İçinde bir delik bulunan bir elmas yapmak sadece 9 üçgen gerektirdiğinden, kodunuzun mümkün olduğunca kısa olması gerekir.
Izgara
Giriş için Martin üçgen ızgara düzenini kullanacağız :
Üçgenlerin merkezlerinin kabaca dikdörtgen bir ızgara oluşturduğuna ve sol üst üçgenin yukarı doğru "işaret" olmasına dikkat edin. Bu ızgaranın bir alt kümesini tanımlayabiliriz, daha sonra, hangi üçgenlerin dahil olduğunu ve hangilerinin dahil olmadığını belirten dikdörtgen bir "yıldız haritası" vererek. Örneğin, bu harita:
** **
*****
bir delik içeren en küçük poliadiyuma karşılık gelir:
delikler
Yukarıdaki örnekte olduğu gibi, bir delik (bir bölge olmayan bölgeler tarafından kuşatılmış olan polyiamond, bir kısmı içeren bir polyiamond olan ) topolojik olarak, konuşma değil, basit bağlantılı .
Meydan okuma
Yukarıda açıklandığı gibi bir "yıldız haritası" girdi olarak alan bir işlev veya program yazın ve yalnızca üçgen ızgaranın belirtilen altkümesi basitçe bağlı bir poliadiyse doğruluk verir .
Daha fazla örnek
*** ***
*******
poliadiyeye karşılık gelir
ki bu basitçe bağlanır.
* *
** **
***
poliadiyeye karşılık gelir
ki bu basitçe bağlanır.
** **
*** **
****
karşılık gelir olmayan -polyiamond
hangi basitçe o bile bağlı olmaz idi bir polyiamond.
Giriş Özellikleri
- Giriş yalnızca yıldız, boşluk ve satır beslemelerinden oluşacaktır.
- Girişin ilk karakteri her zaman bir boşluk veya yıldız işareti olacaktır (ızgaranın sol üst köşesindeki yukarı dönük üçgene karşılık gelir).
- İlk ve son satırlarda her zaman en az bir yıldız işareti olacaktır.
- İlk satırdan sonraki satırların boş kalmayacağının garantisi yoktur. Bir satırdaki iki satır besleme meşru bir girişte görünebilir.
- Çizgi uzunluklarının hepsinin aynı olması gerekmez.
Kazanma Koşulu
Bu kod golf, bayt cinsinden çok kısa cevap kazanır.
Test Durumları
Gerçek haritalar:
1) *
2) *
*
3) **
4) *** ***
*******
5) * *
** **
***
6) *
**
*
7) **
***
****
8) ****
** *
*****
9) ***********
** ** **
**** ** **
**
************
Falsy haritaları:
1) *
*
*
2) * *
3) *
*
4) **
**
5) ***
***
6) ** **
*****
7) ** **
*** **
****
8) *
*
9) *****
** *
*****
AV VA\nVAVAV
yerine** **\n*****
bu daha kolay bir insan görselleştirmek için yapar gibi. Martin ASCII diyagramlarından birinde zaten bir düzenleme yaptım.