Re: [闲聊] 每日leetcode

楼主: JerryChungYC (JerryChung)   2024-07-24 16:47:02
https://leetcode.com/problems/sort-the-jumbled-numbers
※ 引述《enmeitiryous (enmeitiryous)》之铭言:
: 2191 sort the jumped numbers
: 题目: 给你一个array mapping里面有0-9的数字,mapping[i]代表的意思是在之后的
: 数字转换中i要被转换成mapping[i],例如mapping = [8,9,4,0,2,1,3,5,7,6],则
: 338会被转换成007=7,991则会被转换成669,给你一个array nums回传根据
: mapping转换后数字由小到大的原数字排序,如果转换后相同则依照原先相对位置排序
: 思路:用一个function将原数字转换成新数字,将原数字和新数字的配对塞成一个二维
: array依照题目叙述定义新的sort function排序完二维array后依序回传原数字。
Python Code:
class Solution:
def sortJumbled(self, mapping: List[int], nums: List[int]) -> List[int]:
d = [0] * len(nums)
for i, v in enumerate(nums):
d[i] = int(''.join(str(mapping[int(i)]) for _ in str(v)))
return [nums[_[0]] for _ in sorted(enumerate(d), key=lambda x: x[1])]
一次就过但分数好烂
原本d用dict 但怕nums有重复的数字只好改成list
过了才发现d也能一行解决就是了
d = [int(''.join(str(mapping[int(_)]) for _ in str(v)) for v in nums]
你板剩我只会写出这种不知所云的程式码了
楼主: JerryChungYC (JerryChung)   2024-07-24 16:50:00
#1ce7A9RS (Marginalman) 还真的有同样的值看了前几篇还是不知道key的用法 我好烂
作者: sustainer123 (caster)   2024-07-24 17:18:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com