#總體思路:使用堆棧,在Python中能夠使用列表代替;若是a[i]-a[i-1]==1,就要將a[i]合併到以前的區間裏,#因此咱們隊首位元素開闢一個區間爲[a[0],a[0]]#作最後彙總時候,若是區間內先後元素相等,就直接str(),若是不相等就用->分割;class Solution: def summaryRanges(self, nums): """ :type nums: List[int] :rtype: List[str] """ if len(nums)==0:return [] if len(nums)==1:return [str(nums[0])] result=[[nums[0],nums[0]]] #使用一個列表代替堆棧 for i in range(1,len(nums)): pre=result.pop() if nums[i]-pre[1]==1: result.append([pre[0],nums[i]]) else: result.append(pre) result.append([nums[i],nums[i]]) return ['%s->%s'%(i[0],i[1]) if i[0]!=i[1] else str(i[0]) for i in result]