チャレンジ
ASCIIアートの形を考えると、その形が正六角形かどうかを調べる必要があります。
六角形
通常の六角形は、2つのルールを使用して定義されます。
- それは6つの側面を持っています
- 各辺の文字数は等しい
たとえば、次の形状は規則的ですが、6つの辺がないため、正六角形ではありません。
B a a h
s a i d
y o u r
g a o t
同様に、以下の形状は、6つの辺を有するが、異なる長さの辺を有し、そうではない正規六角形。
* *
* * *
* * * *
* * *
* *
ただし、次の形状には6つの辺があり、すべての辺に同じ数の文字があるため、正六角形です。
T h e
h e x a
g o n s a
r e c o
m i n
ルール
出力は、真の値または偽の値(形状が正六角形の場合は真、そうでない場合は偽)である必要があります。
図形には、印刷可能なASCII文字のみが含まれます。
図形の境界線にスペースが含まれることはありません。存在する場合、falseyを返すことができます。
図形の前後に任意の量の空白が存在する可能性があります。
たとえば、形状のすべての角度が等しくない場合があります。次の形状は有効な入力です。
. . .
. . .
. . . . .
. . . .
. . .
falsey値を返します。
すべての形状入力は、スペースで区切られたグリッド上にあります。六角形の入力は、互い違いのグリッド上にあります(各行は次の行からオフセットされます)。
例
真実の
次の形状は、真の値を返す必要があります。
# _
+ + +
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
偽り
以下は偽の値を返すはずです
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
*
* *
* * *
.....
.......
.........
.......
.....
この形状は、スペースで区切られたグリッド上になく、ずらされていません。
* * * *
---------
* * * * * *
-------------
* * * * * *
---------
* * * *
5 6 7
8 9 0 1
2 3 4 5 6
7 8 9 0
1 2 3
単一文字入力の場合、プログラムは真実または偽を出力する場合があります。
&
勝ち
バイト単位の最短プログラムが優先されます。
5 6 7\n8 9 0 1\n2 3 4 5 6\n7 8 9 0\n1 2 3
する追加スペースがありますss5 6 7\nss8 9 0 1\n2 3 4 5 6\ns7 8 9 0\nss1 2 3
(先行するスペースはs
、このフォーマットされていない形式でもう少しわかりやすくするために置き換えられます) 。10個のテストケースはすべて、現在私のコードで正しく検証されていますが、これら2つのケースは、私が使用したアプローチでは失敗します。