228. Summary Ranges

class Solution:
    def summaryRanges(self, nums: List[int]) -> List[str]:
        l = len(nums)
        if l == 0:
            return []
        elif l == 1:
            return [str(nums[0])]

        start = nums[0]
        prev = nums[0]
        ans = []

        def parse(a, b):
            if a == b:
                return str(a)
            return str(a) + "->" + str(b)

        for i in range(1, len(nums)):
            current = nums[i]
            if current - prev > 1:
                ans.append(parse(start, prev))
                start = current
                if i == len(nums) - 1:
                    ans.append(str(current))
            else:
                if i == len(nums) - 1:
                    ans.append(parse(start, current))

            prev = nums[i]

        return ans