自己寫的:
class Solution: def summaryRanges(self, nums): my_li = [] # 建立一個空列表用於儲存結果 if not nums: # 如果輸入列表為空 return my_li # 返回空列表 if len(nums) == 1: # 如果輸入列表只有一個元素 my_li.append(f"{nums[0]}") # 將該元素新增到結果列表中 start = nums[0] # 初始化區間起始值為列表的第一個元素 for i in range(len(nums) - 1): # 遍歷列表元素,注意遍歷範圍是長度減一 if nums[i] != nums[i + 1] - 1: # 如果當前元素與下一個元素不連續 end = nums[i] # 結束值為當前元素 if start == end: # 如果起始值等於結束值 my_li.append(f"{start}") # 新增單個值到結果列表 if start != end: # 如果起始值不等於結束值 my_li.append(f"{start}->{end}") # 新增區間到結果列表 start = nums[i + 1] # 更新起始值為下一個元素 if i == len(nums) - 2: # 如果已經到達倒數第二個元素 my_li.append(f"{nums[-1]}") # 直接新增最後一個元素到結果列表 if nums[i] == nums[i + 1] - 1: # 如果當前元素與下一個元素連續 if i == len(nums) - 2: # 如果已經到達倒數第二個元素 end = nums[-1] # 結束值為最後一個元素 my_li.append(f"{start}->{end}") # 新增起始值到結束值的區間到結果列表 return my_li # 返回結果列表