Напишіть програму або функцію, яка містить багаторядкові рядки 0
's і 1
' s. Жодних інших символів не буде в рядку, і рядок завжди буде прямокутним (усі рядки матимуть однакову кількість символів), розміри яких становлять 1 × 1, але в іншому випадку 0
'і і 1
можуть бути розташовані довільно.
Ви можете припустити, що в рядку є необов'язковий останній новий рядок, і при бажанні ви можете використовувати будь-які два різних символів для друку ASCII замість 0
та 1
.
Роздрукуйте або поверніть значення "truthy", якщо всі області, пов'язані з контуром, і 0
s, і 1
s у рядку є суцільними прямокутниками , інакше вивести помилкове значення .
Область, пов'язана з 0
шляхом, означає, що з будь-якого 0
регіону 0
можна дістатися до всіх інших , лише рухаючись вгору, вниз, вліво та вправо до інших 0
(і не рухаючись по діагоналі, не рухаючись до жодної 1
, і не рухається за межі рядків). Ця ж ідея стосується 1
областей, пов'язаних з трактом.
Твердий прямокутник з 0
«означає сек всій площі прямокутника не заповнюється 0
» и і немає 1
«и. Ця ж ідея стосується 1
суцільних прямокутників.
Виграє найкоротший код у байтах. Тирбейкер - це відповідь раніше.
(Зверніть увагу, що рядок не обертається з тороїдальними граничними умовами .)
Приклади
1) Цей вхідний рядок має 3 області, пов'язані шляхом (2 для 0
та 1 для 1
). Тільки в нижній правій 00
області є суцільний прямокутник, тому вихід буде хибним.
0011
0111
0100
2) Цей вхідний рядок має 4 області, пов'язані шляхом (2 для обох 0
і 1
). Усі вони є суцільними прямокутниками, тому вихід був би простий.
0011
0011
1100
3) Цей вхід має дві області, пов'язані з контуром, але лише одна з них є суцільним прямокутником, тому вихід буде хибним.
00000000
01111110
00000000
4) Цей вхід має лише 1 область, пов'язану з контуром, і є тривіально суцільним прямокутником, тому вихід є простий.
11111111
11111111
11111111
Випробування
Трохи T
нижче введення рядка означає truthy, F
означає хибність .
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