题目描述
某种外星语也使用英文小写字母,但可能顺序 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])