方法1:密码翻译后排序
class Solution:
def isAlienSorted(self, words: List[str], order: str) -> bool:
dic={c:i for i,c in enumerate(order)}
ans=[]
for word in words:
ans.append(''.join([chr(ord('a')+dic[c]) for c in word)])
return ans==sorted(ans)
方法2:成对遍历
class Solution:
def isAlienSorted(self, words: List[str], order: str) -> bool:
dic={c:i for i,c in enumerate(order)}
n=len(words)
for i in range(n-1):
pre,after=words[i],words[i+1]
minl=min(len(pre),len(after))
for j in range(minl):
if dic[pre[j]]<dic[after[j]]:
break
elif dic[pre[j]]>dic[after[j]]:
return False
if len(pre)>len(after) and pre[:minl]==after:
return False
return True