Bir Python programında bağlı (4 bağlantı) tüm bakteri kümelerini bulmalıyım.Bakteri kümelerini bulun
###
#####
#######
#######
######
###### ##
#### #####
## ###### ####
# ###### ####
### ########## #####
####### #### ## ######
######### ## # #####
# #### ### ###
##### #### # ## ##
##### ###### #
###### ########
#### ########
#######
#######
NOT:
Bu dosya Sınıfımdaki 2B dizi şeklinde kaydedilir sayılır olamaz ızgaranın kenarına bitişik olan Kümeleri girişi şöyle bir dosyadır . Bu işlevi tüm kümeleri bulmak için yazdım ancak birçok kümeye (5 yerine 22) neden oluyor. Neyi yanlış yaptığımı biliyor musun?
Kodum:
def findAll(self):
self.colonies = [set()]
for i in range(len(self.grid)):
for j in range(len(self.grid[i])):
if self.grid[i][j] == "#":
added = False
count = 0
for k in self.colonies:
if self.checkNeighbours((i, j), k):
k.add((i, j))
added = True
count += 1
if not added:
self.colonies.append({(i, j)})
def checkNeighbours(self, pos, current):
return ((pos[0] + 1, pos[1]) in current
or (pos[0] - 1, pos[1]) in current
or (pos[0], pos[1] + 1) in current
or (pos[0], pos[1] - 1) in current)
Bu resimde 6 bakteri olmadığından emin misiniz? –
Gerçekten de 6 tane bakteri var ama ızgara kenarına bitişik olan bakterilerin sayılmayacağından bahsetmeyi unuttum. Yani bu bakteri sayısını 5 yapar. –
Oh Görüyorum, bu kümeler. Ve alt küme göz ardı edilmemelidir? Eğer öyleyse, onu buraya soruya eklemek isteyebilirsiniz, böylece okuyucular kolayca görebilirler. –