Python: прочитайте массовые данные и найдите количество островов
Python Basic - 1: Упражнение 57 с решением
На плоскости 10 вертикальных и горизонтальных квадратов. Каждый квадрат окрашен в синий и зеленый цвета. Синий представляет море, а зеленый представляет землю. Когда два зеленых квадрата соприкасаются с верхом и низом или справа и слева, говорят, что они заземлены. Область, созданная только одним зеленым квадратом, называется «остров». Например, на рисунке ниже показано пять островов.
Напишите программу на Python для чтения массовых данных и определения количества островов.
Входные данные :
Один набор данных представлен 10 строками из 10 чисел, представляющих зеленые квадраты в виде 1 и синие квадраты в виде нулей. Выход:
Выход AB и CD не ортогональны! или AB и CD ортогональны!
Иллюстрированная презентация:
Пример решения :
Код Python:
c=0
def f(x,y,z):
if 0<=y<10 and 0<=z<10 and x[z][y]=='1':
x[z][y]='0'
for dy,dz in [[-1,0],[1,0],[0,-1],[0,1]]:f(x,y+dy,z+dz)
print("Input 10 rows of 10 numbers representing green squares (island) as 1 and blue squares (sea) as zeros")
while 1:
try:
if c:input()
except:break
x = [list(input()) for _ in [0]*10]
c=1;b=0
for i in range(10):
for j in range(10):
if x[j][i]=='1':
b+=1;f(x,i,j)
print("Number of islands:")
print(b)
Пример вывода:
Введите 10 строк из 10 чисел, представляющих зеленые квадраты (остров) как 1 и синие квадраты (море) как нули 1100000111 1000000111 0000000111 0010001000 0000011100 0000111110 0001111111 1000111110 1100011100 1110001000 Количество островов: 5
Блок - схема:
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу на Python для суммирования всех числовых значений (положительных целых чисел), встроенных в предложение.
Далее: Напишите программу на Python для восстановления исходной строки, введя сжатую строку с этим правилом. Однако символ # не отображается в восстановленной строке символов.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования