228. Summary Ranges.png
class Solution:
def summaryRanges(self, nums: List[int]) -> List[str]:
result = []
if len(nums)==0:
return(None)
elif len(nums)==1:
result.append(str(nums[0]))
return(result)
pre = nums[0]
start = nums[0]
i=0
for each in nums[1:]:
i+=1
if (each == pre + 1):
pre = each
if i == len(nums)-1:result.append(str(start)+'->'+str(pre))
elif (i == len(nums)-1) and (each != pre+1):
if start==pre:result.append(str(start))
else:result.append(str(start)+'->'+str(pre))
result.append(str(each))
else:
if start==pre:result.append(str(start))
else:result.append(str(start)+'->'+str(pre))
pre = each
start = each
return(result)
更简单的方法:
def summaryRanges(self, nums):
ranges = []
for n in nums:
if not ranges or n > ranges[-1][-1] + 1:
ranges += [],
ranges[-1][1:] = n,
return ['->'.join(map(str, r)) for r in ranges]