Напишіть програму або функцію, яка містить багаторядкові рядки 0's і 1' s. Жодних інших символів не буде в рядку, і рядок завжди буде прямокутним (усі рядки матимуть однакову кількість символів), розміри яких становлять 1 × 1, але в іншому випадку 0'і і 1можуть бути розташовані довільно.
Ви можете припустити, що в рядку є необов'язковий останній новий рядок, і при бажанні ви можете використовувати будь-які два різних символів для друку ASCII замість 0та 1.
Роздрукуйте або поверніть значення "truthy", якщо всі області, пов'язані з контуром, і 0s, і 1s у рядку є суцільними прямокутниками , інакше вивести помилкове значення .
Область, пов'язана з 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