LeetCode--Python解析【Largest Number】(179)
阿新 • • 發佈:2019-02-10
題目:
方法:
class Solution: def cmp(self,x,y): return (x > y) - (x < y) def comper(self,x,nums): temp = 0 for n in nums: n = str(n) temp += self.cmp(int(x+n),int(n+x)) #print(self.cmp(int(x),n)) return temp def largestNumber(self, nums): """ :type nums: List[int] :rtype: str """ temp_list = [str(x) for x in nums] temp_list.sort(key=lambda x:self.comper(x,nums),reverse=True) return "".join(temp_list).lstrip("0") or "0"
cmp方法比較x與y的大小,x>y返回1,x<y返回-1,x=y返回0.
comper方法將傳入的x依次與nums中的元素比較x在前組合,與nums元素在前組合的大小
並且累加cmp返回的值
最後返回主函式,將nums按照帶入comper,得到的值進行倒排
返回得到的結果