도전
ASCII 아트 셰이프가 제공되면 셰이프가 정육각형인지 아닌지를 알아야합니다.
육각형
정규 육각형은 두 가지 규칙을 사용하여 정의됩니다.
- 그것은 여섯면이
- 각면에는 같은 수의 문자가 있습니다
예를 들어, 다음 모양은 규칙적이지만 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 문자 만 포함됩니다.
도형의 테두리에는 공백이 포함되지 않습니다. 그렇다면 거짓을 반환 할 수 있습니다.
모양 전후에 임의의 양의 공백이있을 수 있습니다.
예를 들어, 모양의 모든 각도가 동일하지 않을 수 있습니다. 다음 모양은 유효한 입력입니다.
. . .
. . .
. . . . .
. . . .
. . .
잘못된 값을 반환합니다.
모든 모양 입력은 공백으로 구분 된 격자에 있습니다. 육각형 입력은 지그재그 그리드에 있습니다 (각 라인은 다음 라인에서 오프셋됩니다).
예
Truthy
다음 모양은 정확한 값을 반환해야합니다.
# _
+ + +
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 가지 테스트 사례가 모두 내 코드로 올바르게 유효성을 검사하지만이 두 가지 사례는 내가 사용한 접근 방식으로 실패합니다.