卖萌的弱渣

I am stupid, I am hungry.

Summary Ranges

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

For example, given [0,1,2,4,5,7], return [“0->2”,“4->5”,“7”]

Solution

(Summary-Ranges.py) download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Solution(object):
    def findNext(self, nums, index):
    # if index is the last one
        if index == len(nums)-1:
            return index

        while index < len(nums)-1 and nums[index] == nums[index+1]-1:
            index += 1
        return index

    def summaryRanges(self, nums):
        """
        :type nums: List[int]
        :rtype: List[str]
        """
        result = []
        if nums == None or len(nums) == 0:
            return result
        l = len(nums)
        index = 0
        while index < l:
            end = self.findNext(nums,index)
            # single
            if end == index:
                result.append(str(nums[index]))
            else:
                # range
                s = str(nums[index])+"->"+str(nums[end])
                result.append(s)
            index = end+1
        return result