Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
everybody loves pandas solution in 3rd party category for Flood Area by Vasily__Chibilyaev
from typing import Iterable
import pandas as pd
def flood_area(diagram: str) -> Iterable[int]:
f = lambda c: -1 if c == "\\" else 1 if c == "/" else 0
s0 = [0] + list(map(f, diagram))
s1 = pd.Series(s0).cumsum()
s2 = pd.DataFrame([s1.cummax(), s1.iloc[::-1].cummax()]).min()
s3 = s2 - s1
s4 = s3.cumsum()
s5 = (s4
.loc[(s3.shift(-1) != 0) & (s3 == 0)]
.diff()
.dropna()
.map(int)
.to_list())
return s5
if __name__ == '__main__':
print("Example:")
print(list(flood_area(r'\\//')))
#assert list(flood_area(r'\\//')) == [4], 'valley'
assert list(flood_area(r'/\\///\_/\/\\\\/_/\\///__\\\_\\/_\/_/')) == [4, 2, 1, 19, 9], 'mountains'
assert list(flood_area(r'_/_\_')) == [], 'hill'
print("Coding complete? Click 'Check' to earn cool rewards!")
March 25, 2020
Comments: