Представьте себе двумерный массив логических значений, где 0 представляют квадраты травы на прямоугольном участке земли, а 1 представляют заборы.
Напишите функцию, которая принимает двумерный массив в качестве входных данных и определяет, можете ли вы перемещаться из любой одной области травы в любую другую область травы, используя только движения север / восток / запад / юг, не наталкиваясь на забор.
Если какая-либо область травы в массиве полностью огорожена заборами (то есть вы не можете перемещаться по N / E / W / S, чтобы добраться до любой другой области травы в массиве), функция должна вернуть false; в противном случае он должен вернуть true.
Ниже приведены два примера массивов, которые вы можете использовать в качестве входных данных, хотя ваша функция должна иметь возможность обрабатывать не только эти, но и любые двумерные массивы логических значений:
0 0 0 0 0
0 1 0 0 0
0 1 1 1 1
0 0 0 0 0
0 0 0 1 1
(should return true)
0 1 0 1 0
0 1 1 0 0
0 0 0 0 0
0 0 0 1 0
1 1 1 1 0
(should return false, since the middle 0 in the top row is fully enclosed)
Самый короткий рабочий код выигрывает. Я выберу победителя по истечении недели или новых поступлений в течение 24 часов.
1 1 1; 1 0 1; 1 1 1? В центре есть одна травяная клетка. Визуально клетка для травы в центре полностью огорожена заборами, но по вашему определению это не так.