返回最大数

 给定1个int型一维数组,要求返回1个字符串,字符串为这个数组中的数字能拼接成的最大数

 

class Solution:
    def my_compare(self, str_num1, str_num2):
        index = 0
        max_index = min(len(str_num1), len(str_num2))
        if str_num1[index] != str_num2[index]:
            return str_num1[index] > str_num2[index]
        while max_index - 1 > index:
            index += 1
            return self.my_compare(str_num1[index:], str_num2[index:])
        else:
            if len(str_num1) > len(str_num2):
                return str_num1[index + 1] > str_num2[0]
            else:
                return str_num2[index + 1] > str_num1[0]

    def solve(self, nums):
        # write code here
        str_nums = []
        for i in nums:
            str_nums.append(str(i))
        nums_len = len(str_nums)
        for j in range(nums_len):
            for i in range(nums_len - j - 1):
                if not self.my_compare(str_nums[i], str_nums[i+1]):
                    str_nums[i], str_nums[i + 1] = str_nums[i+1], str_nums[i]
        result = ''
        for i in str_nums:
            result += i
        return result


num_list = [12,3,8765,87656]
s_obj = Solution()
res = s_obj.solve(num_list)
print(res)

  

 

posted @ 2020-10-31 22:01  repacse  阅读(61)  评论(2)    收藏  举报