228. Summary Ranges[M]

https://leetcode.com/problems/summary-ranges/

Description

Given a sorted integer array without duplicates, return the summary of its ranges.

Example 1:

1
2
3
Input:  [0,1,2,4,5,7]
Output: ["0->2","4->5","7"]
Explanation: 0,1,2 form a continuous range; 4,5 form a continuous range.

Example 2:

1
2
3
Input:  [0,2,3,4,6,8,9]
Output: ["0","2->4","6","8->9"]
Explanation: 2,3,4 form a continuous range; 8,9 form a continuous range.

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def summaryRanges(self, nums: List[int]) -> List[str]:
res = []
start, ls = 0, len(nums)
for i in range(ls):
if i + 1 < ls and nums[i + 1] == nums[i] + 1:
continue
if i == start:
res.append(str(nums[start]))
else:
res.append("%d->%d" % (nums[start], nums[i]))
start = i + 1
return res