aboutsummaryrefslogtreecommitdiff
path: root/challenge-196/lubos-kolouch/python/ch-2.py
blob: fe83254399d8dd810215247ad5108e66296be1bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python
# -*- coding: utf-8 -*-

def find_ranges(array):
    ranges = []
    start, end = None, None

    for num in array:
        if start is None:
            start = end = num
        elif num == end + 1:
            end = num
        else:
            if end > start:
                ranges.append([start, end])
            start = end = num

    if start is not None and end > start:
        ranges.append([start, end])

    return ranges


# Test cases
assert find_ranges([1, 3, 4, 5, 7]) == [[3, 5]], "Example 1"
assert find_ranges([1, 2, 3, 6, 7, 9]) == [[1, 3], [6, 7]], "Example 2"
assert find_ranges([0, 1, 2, 4, 5, 6, 8, 9]) == [
    [0, 2], [4, 6], [8, 9]], "Example 3"

print("All tests passed!")