кодесурса
«Python

Python: прочитайте массовые данные и найдите количество островов

script1adsense2code
script1adsense3code

Python Basic - 1: Упражнение 57 с решением

На плоскости 10 вертикальных и горизонтальных квадратов. Каждый квадрат окрашен в синий и зеленый цвета. Синий представляет море, а зеленый представляет землю. Когда два зеленых квадрата соприкасаются с верхом и низом или справа и слева, говорят, что они заземлены. Область, созданная только одним зеленым квадратом, называется «остров». Например, на рисунке ниже показано пять островов.
Напишите программу на Python для чтения массовых данных и определения количества островов.

Входные данные :
Один набор данных представлен 10 строками из 10 чисел, представляющих зеленые квадраты в виде 1 и синие квадраты в виде нулей.
Выход:
Выход AB и CD не ортогональны! или AB и CD ортогональны!

Иллюстрированная презентация:

«Python:

Пример решения :

Код 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code