0
와 (과) 1
의 여러 줄 문자열을 취하는 프로그램이나 함수를 작성하십시오 . 다른 문자가 문자열에있을 것이고, 문자열은 항상 1 × 1로 작게 치수 (모든 라인 문자의 같은 수있을 것이다) 직사각형 수 있지만 그렇지 않으면 0
's와 1
의 임의 배열 될 수있다.
문자열에 선택적인 후행 줄 바꿈이 있다고 가정 할 수 있으며 원하는 경우 및 대신에 두 개의 고유 한 인쇄 가능한 ASCII 문자를 사용할 수 있습니다 .0
1
문자열에서 및 의 경로로 연결된 모든 영역 이 단색 사각형 인 경우 정확한 값을 인쇄하거나 반환 합니다 . 그렇지 않으면 잘못된 값 이 출력 됩니다.0
1
의 경로 연결 영역 은 0
해당 지역 의 어느 한 0
지역에서 다른 모든 지역 0
으로 위, 아래, 왼쪽 및 오른쪽으로 만 이동하여 0
(그리고 대각선으로 이동 하지 않고 , 다른 곳으로 이동 하지 않음) 다른 모든 지역에 도달 할 수 있음 을 의미합니다 . 문자열 경계 밖으로 이동 하지 마십시오 ). 경로 연결 영역 에도 동일한 아이디어가 적용됩니다 .1
1
고체 직사각형 의 0
집 수단 직사각형의 전체 영역이 충전되지 0
S '더 1
집. 동일한 아이디어가 1
단색 사각형 에도 적용됩니다 .
바이트 단위의 가장 짧은 코드가 이깁니다. Tiebreaker가 이전 답변입니다.
(문자열은 토 로이드 경계 조건으로 둘러싸이지 않습니다 .)
예
1) 이 입력 문자열에는 3 개의 경로로 연결된 영역이 있습니다 (에 대한 2 0
및 1 1
). 오른쪽 아래 00
영역 만 단색 사각형이므로 출력이 잘못됩니다.
0011
0111
0100
2) 이 입력 문자열에는 4 개의 경로로 연결된 영역이 있습니다 ( 0
및 모두 2 1
). 그들 모두는 단색 사각형이므로 출력이 진실합니다.
0011
0011
1100
3) 이 입력에는 2 개의 경로로 연결된 영역이 있지만 그 중 하나만 단색 사각형이므로 출력이 잘못됩니다.
00000000
01111110
00000000
4) 이 입력은 하나의 경로로 연결된 영역을 가지고 있으며 사소한 단색 사각형이므로 출력이 정확합니다.
11111111
11111111
11111111
테스트 사례
T
단지 입력 문자열 수단 truthy 아래 F
수단 falsy.
0
T
1
T
00
T
01
T
10
T
11
T
0000000
T
1111111
T
011100100100101100110100100100101010100011100101
T
00
11
T
01
10
T
01
11
F
00
01
F
11
11
T
110
100
F
111
000
T
111
101
111
F
101
010
101
T
1101
0010
1101
0010
T
1101
0010
1111
0010
F
0011
0111
0100
F
0011
0011
1100
T
00000000
01111110
00000000
F
11111111
11111111
11111111
T
0000001111
0000001111
T
0000001111
0000011111
F
0000001111
1000001111
F
1000001111
1000001111
T
1110100110101010110100010111011101000101111
1010100100101010100100010101010101100101000
1110100110010010110101010111010101010101011
1010100100101010010101010110010101001101001
1010110110101010110111110101011101000101111
F