길이가 양의 삼각 숫자 (1, 3, 6, 10, 15 ...) 인 문자열은 공백과 줄 바꾸기를 추가하고 동일한 읽기 순서로 유지하여 "등변 텍스트 삼각형"으로 배열 할 수 있습니다.
예를 들어, 길이 10 문자열 ABCDEFGHIJ
은 다음과 같습니다.
A
B C
D E F
G H I J
이러한 문자열을받는 프로그램이나 함수를 작성하십시오 . 단, 문자 0
및 만 포함됩니다 1
. 입력이 유효하다고 가정 할 수 있습니다.
결과 "등변 텍스트 삼각형"의 경우, 표시되는 대칭 유형을 나타내는 네 개의 숫자 중 하나를 출력 (인쇄 또는 리턴)하십시오.
2
삼각형에 양방향 대칭이있는 경우 출력 합니다. 즉, 한쪽 모서리에서 반대쪽의 중간 점까지 대칭 선이 있습니다.예 :
0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1
3
삼각형에 회전 대칭이있는 경우 출력 합니다. 즉, 시각적 변화없이 120 ° 회전 할 수 있습니다.예 :
0 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1
6
삼각형이 양방향 및 회전 대칭을 모두 갖는 경우 출력 됩니다 . 즉, 그것은 모두를 출력하기위한 조건과 일치2
와3
.예 :
0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0
1
삼각형에 양방향 또는 회전 대칭이없는 경우 출력 됩니다.예 :
1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1
바이트 단위의 가장 짧은 코드가 이깁니다. Tiebreaker가 이전 답변입니다.
선택적인 후행 줄 바꿈 외에 입력 문자열에는 공백 / 줄 바꿈 또는 구조가 없을 수 있습니다. 이는 일반 0
및 이어야합니다 1
.
원하는 경우 및 대신 두 개의 인쇄 가능한 ASCII 문자를 사용할 수 있습니다 .0
1
테스트 사례
예제에서 직접 가져 왔습니다.
011 -> 2
101 -> 2
001010 -> 2
1111010111 -> 2
0100110100 -> 3
0011000010 -> 3
101111111010111 -> 3
101001100010000100111 -> 3
0 -> 6
1 -> 6
000 -> 6
100101 -> 6
0000100000 -> 6
110000 -> 1
001101 -> 1
1101111111 -> 1
111111000111111 -> 1
입력을 120 °로 "회전"하면 물론 동일한 출력이됩니다.