【力扣日记】953 验证外星语词典 | 排序高级

题目描述

某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。

给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则,返回 false。

翻译一下,就是给定新的字母序order,判断单词组words是否满足新的字母序。

算法思路

将单词组中的单词替换为字母序的数字,这样就可以用sorted排序,对比单词组的原顺序。

class Solution:
    def isAlienSorted(self, words: List[str], order: str) -> bool:
        d=dict(zip(order,range(26)))
        w=[[d[j] for j in i]for i in words]
        return sorted(w)==w

sorted 的高级运用

class Solution(object):
    def isAlienSorted(self, words, order):
        return words == sorted(words, key=lambda w: [order.index(x) for x in w])
发布了317 篇原创文章 · 获赞 44 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Heart_for_Ling/article/details/105457044