Flood Area

Flood Area

Your task is to simulate a flood damage.

You are given a cross-section diagram (a string). It represents slopes and flatlands by '/', '\' and '_' respectively. For example, the region of the following picture is shown by a raw string r"/\\///\_/\/\\\\/_/\\///__\\\_\\/_\/_/". Notice, that single backslash "\" escapes following character. So to get backslash just as a character without special functionality, you need to escape every needed backslash string with another one or use raw string.

Assume that the rain is falling endlessly and the water overflowing from the region is falling into the sea from both sides. In the following example the rain will create floods in 4, 2, 1, 19 and 9 areas respectively.

You should return a list or other Iterable (tuple, iterator, generator) of the numbers of floods from the left side of the cross-section diagram. If there aren’t any floods, return [] (or an empty Iterable).

example

Examples:

assert list(flood_area("\\\\//")) == [4]
assert list(flood_area("_/\\//")) == [1]
assert list(flood_area("\\\\/_")) == [1]
assert list(flood_area("\\\\_\\\\_/_/\\//_")) == [18]

Input: A cross-section diagram (a string).

Output: The numbers of floods as list or other Iterable (tuple, iterator, generator) of integers.

Precondition:1 ≤ len(diagram) ≤ 500

The mission was taken from AIZU ONLINE JUDGE(ALDS1_3_D: Areas on the Cross-Section Diagram).