grid, где 'X' — клетка корабля, а '.' — вода. Посчитайте, сколько на поле кораблей.
Каждый корабль — прямая полоска клеток: либо одна строка и несколько подряд идущих столбцов, либо один столбец и несколько подряд идущих строк. Разные корабли никогда не соприкасаются сторонами (углами — могут).
Попробуйте обойтись одним проходом по полю, дополнительной памятью O(1) и не меняя grid.grid=[['X', 'X', '.', 'X'], ['.', '.', '.', 'X'], ['X', '.', '.', '.']] → 3
Горизонтальный корабль из двух клеток в левом верхнем углу, вертикальный из двух клеток справа и одноклеточный внизу слева — всего 3.
grid=[['.', 'X'], ['X', '.']] → 2
Клетки касаются только углами, значит, это два разных корабля.
grid=[['.', '.', '.']] → 0
Кораблей нет.
grid[i][j] — это 'X' или '.''X' — прямая полоскаgrid=[['X', 'X', '.', 'X'], ['.', '.', '.', 'X'], ['X', '.', '.', '.']]
3
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 71 тест на сервере, включая скрытые.