In an alien language, surprisingly they also use english lowercase letters, but possibly in a different order. The order of the alphabet is some permutation of lowercase letters.
Given a sequence of words written in the alien language, and the orderof the alphabet, return true if and only if the given words are sorted lexicographicaly in this alien language.
Example 1:
Input: words = ["hello","leetcode"], order = "hlabcdefgijkmnopqrstuvwxyz"
Output: true
Explanation: As 'h' comes before 'l' in this language, then the sequence is sorted.
Example 2:
Input: words = ["word","world","row"], order = "worldabcefghijkmnpqstuvxyz"
Output: false
Explanation: As 'd' comes after 'l' in this language, then words[0] > words[1], hence the sequence is unsorted.
Example 3:
Input: words = ["apple","app"], order = "abcdefghijklmnopqrstuvwxyz"
Output: false
Explanation: The first three characters "app" match, and the second string is shorter (in size.) According to lexicographical rules "apple" > "app", because 'l' > '∅', where '∅' is defined as the blank character which is less than any other character (More info).
Note:
1 <= words.length <= 1001 <= words[i].length <= 20order.length == 26- All characters in
words[i]andorderare english lowercase letters.
根据order里字母出现的顺序,判断words中的值是不是有序的,即是否words[0]<words[1]<...words[len(words)-1]
用python内建的enumerate函数:enumerate(list,start=0)
上述函数中,list是一个可迭代的对象,可以是列表,字典,文件对象等等。
enumerate返回的是下标和item组成的元组:
a=['ab', 'bc', 'cc']
>>> list(enumerate(a))
[(0, 'ab'), (1, 'bc'), (2, 'cc')]
可以是字典
>>> dict(enumerate(a))
{0: 'ab', 1: 'bc', 2: 'cc'}
class Solution:
def isAlienSorted(self, words, order):
"""
:type words: List[str]
:type order: str
:rtype: bool
"""
dictm={}
# words=["word","world","row"]
#order="worldabcefghijkmnpqstuvxyz"
#dictm=dict(enumerate(order))
for k, i in enumerate(order):
dictm[i] = k
for i in range(len(words)-1):
b=0
x=words[i]
y=words[i+1]
for j in range (min(len(x),len(y))):
if dictm[x[j]] > dictm[y[j]]:
return False
if dictm[x[j]] < dictm[y[j]]:
b=1
break
if b==0 and len(x) > len(y):
return False
return True

369

被折叠的 条评论
为什么被折叠?



