力扣312场周赛:按身高排序

本文以python为编程语言,题目来源于力扣312届周赛

题目:

给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。

对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。

请按身高 降序 顺序返回对应的名字数组 names 。

案例一:

输入:names = ["Mary","John","Emma"], heights = [180,165,170]
输出:["Mary","Emma","John"]
解释:Mary 最高,接着是 Emma 和 John 。

案例二:

输入:names = ["Alice","Bob","Bob"], heights = [155,185,150]
输出:["Bob","Alice","Bob"]
解释:第一个 Bob 最高,然后是 Alice 和第二个 Bob 。

遇到的问题:思路很清晰,但是代码水平不足,忘记zip整合列表

思路:比较高度然后通过高度进行排序

代码实现:

class Solution:
    def sortPeople(self, names: List[str], heights: List[int]) -> List[str]:
        tmp = list(zip(names, heights))  #运用zip函数将俩个列表整合在一起,注意zip返回的不是列表
        tmp.sort(key=lambda x:-x[1])  #排序
        return [x[0] for x in tmp]

总结:函数运用不够熟练

 

 

你可能感兴趣的:(力扣,python,算法)