某种外星语也使用英文小写字母,但可能顺序 order 不同。
字母表的顺序(order)是一些小写字母的排列。
给定一组用外星语书写的单词 words,以及其字母表的顺序 order,
只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则,返回 false。
解题思路:
就是看当前的字符串是否满足字典序给定的比大小要求
根据规则创建字典序即可
class Solution:
def isAlienSorted(self, words, order):
# 用字典以键值的方式存储当前字符与其顺序值
order_map = dict()
for idx in range(len(order)):
order_map.update({order[idx]:idx})
# 比较相邻单词 的 字符下标
# 是否全部满足字典序的要求
# 全部满足返回真 有不满足退出循环返回假
for i in range(len(words) - 1):
word1 = words[i]
word2 = words[i + 1]
flag = True
for j in range(min(len(word1), len(word2))):
if word1[j] != word2[j]:
if order_map[word1[j]] > order_map[word2[j]]:
return False
else:
flag = False
break
if flag and len(word1) > len(word2):
return False
return True