Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
flood area solution in Clear category for Flood Area by Alexey.K.
def flood_region(data: list):
if data.count('/') > 0:
min_fs = min([i for i, e in enumerate(data) if e == '/'])
if data[:min_fs].count('\\') > 0:
max_bs = max([i for i, e in enumerate(data[:min_fs]) if e == '\\'])
pit = []
for c in data[max_bs:min_fs + 1]:
if c in ['\\', '/']:
pit += [0.5]
elif c == '_':
pit += [1]
elif isinstance(c, list):
pit += [i+1 for i in c]
return flood_region(data[:max_bs] + [pit] + data[min_fs + 1:])
else:
return data[:min_fs] + flood_region(data[min_fs + 1:])
else:
return data
def flood_area(diagram: str) -> list[int]:
return [int(sum(item)) for item in flood_region(list(diagram)) if isinstance(item, list)]
Jan. 12, 2022