Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Create Intervals by Kajin
def create_intervals(data):
data=list(data)
data.sort()
result = []
if len(data) == 1:
result.append((data[0],data[0]))
elif len(data) > 1:
start = data[0]
stop = data[0]
for index in range(len(data)):
if start - data[index] == 1:
start = data[index]
elif data[index] - stop == 1:
stop = data[index]
elif start -data[index] > 1 or data[index] - stop > 1:
result.append((start, stop))
start = stop = data[index]
result.append((start, stop))
return result
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert create_intervals({1, 2, 3, 4, 5, 7, 8, 12}) == [(1, 5), (7, 8), (12, 12)], "First"
assert create_intervals({1, 2, 3, 4, 5, 6, 7, 8}) == [(1, 8)], "Second"
assert create_intervals({1, 2, 3, 4, 5, 6, 1, 2}) == [(1, 6)], "Wrong"
assert create_intervals({8, 7}) == [(7, 8)], "Wrong"
assert create_intervals({8, 9, 6, 7}) == [(6, 9)], "Wrong"
print('Almost done! The only thing left to do is to Check it!')
July 28, 2017
Comments: