Meydan okuma
Bir ASCII sanat şekli verildiğinde, şeklin normal bir altıgen olup olmadığını öğrenmelisiniz.
altıgenler
Normal bir altıgen iki kural kullanılarak tanımlanır:
- Altı tarafı var
- Her bir tarafın eşit sayıda karakteri vardır
Örneğin, aşağıdaki şekil normaldir, ancak altı tarafı yoktur ve normal bir altıgen değildir :
B a a h
s a i d
y o u r
g a o t
Benzer şekilde, aşağıdaki şeklin altı tarafı vardır, ancak farklı uzunluklarda kenarları vardır ve bu nedenle normal bir altıgen değildir :
* *
* * *
* * * *
* * *
* *
Bununla birlikte, aşağıdaki şeklin altı yüzü vardır ve tüm kenarların aynı sayıda karakteri vardır, bu yüzden normal bir altıgendir:
T h e
h e x a
g o n s a
r e c o
m i n
kurallar
Çıktı bir doğruluk ya da bir falsey değeri olmalıdır (şekil düzenli bir altıgen ise doğrudur, değilse falsey).
Şekiller yalnızca yazdırılabilir ASCII karakterleri içerecektir.
Şeklin kenarlığı asla boşluk içermez. Varsa, falsey geri dönebilirsiniz.
Şekilden önce ve / veya sonra keyfi miktarda boşluk olabilir.
Şekildeki tüm açılar örneğin eşit olmayabilir, aşağıdaki şekil geçerli giriştir:
. . .
. . .
. . . . .
. . . .
. . .
Bir falsey değeri döndürür.
Tüm şekil girişleri boşlukla ayrılmış ızgarada olacaktır. Altıgen giriş aşamalı bir ızgarada olacaktır (her satır bir sonrakinden ofsetlenir).
Örnekler
Doğru
Aşağıdaki şekiller doğruluk değerleri döndürmelidir:
# _
+ + +
9 :
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
t h i s
i s
a h
e x
a g
o n
! ! ! !
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
Falsey
Aşağıdakiler falsey değerlerini döndürmelidir
r e c t a
n g l e s
h e l l o
w o r l d s
t h i s i s b
e t a d e c
a y n o w
*
* *
* * *
.....
.......
.........
.......
.....
Bu şekil, boşlukla ayrılmış bir ızgarada değildir ve kademeli değildir.
* * * *
---------
* * * * * *
-------------
* * * * * *
---------
* * * *
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
Tek karakter girişleri için programınız doğruluk veya falsey çıktısı verebilir:
&
Kazanan
Bayt cinsinden en kısa program kazanır.
5 6 7\n8 9 0 1\n2 3 4 5 6\n7 8 9 0\n1 2 3
diğeri sıralardan birine giden ek bir alana sahip: ss5 6 7\nss8 9 0 1\n2 3 4 5 6\ns7 8 9 0\nss1 2 3
( s
bu biçimlendirilmemiş formda biraz daha net hale getirmek için önde gelen boşluklarla değiştirilir ) . Test durumlarınızın 10'u da şu anda kodumla doğrulanıyor, ancak bu iki durum kullandığım yaklaşımla başarısız olacaktır.