Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Groupby enumerate lambda solution in Clear category for Create Intervals by Striga
from itertools import groupby as gb
def create_intervals(data):
answer = []
data = sorted(set(data))
for _, group in gb(enumerate(data), lambda t: t[1]-t[0]):
group = list(group)
answer.append(tuple([group[0][1], group[-1][1]]))
return answer
if __name__ == '__main__':
assert create_intervals({1, 2, 3, 4, 5, 7, 8, 12}) == [(1, 5), (7, 8), (12, 12)], "First"
assert create_intervals({1, 2, 3, 6, 7, 8, 4, 5}) == [(1, 8)], "Second"
Jan. 30, 2021