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