Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Calculate Islands by TovarischZhukov
def inters(n_val,r_val):
for val1 in n_val:
for val2 in r_val:
if (val2[0]-1<=val1[0]<=val2[0]+1) and (val2[1]-1<=val1[1]<=val2[1]+1):
return True
return False
def checkio(data):
retval=[]
for i,el in enumerate(data):
prev=0; tmp=[]
for j,v in enumerate(el):
if v:
if not prev: tmp.append(set())
tmp[-1].add((i,j))
prev=v
for sval in tmp:
n_val=sval
for r_val in retval[:]:
if inters(n_val,r_val):
n_val=n_val.union(r_val)
retval.remove(r_val)
retval.append(n_val)
return sorted(len(val) for val in retval)
Feb. 13, 2016