Q. Учитывая последовательность слов, написанных на иностранном языке, и порядок алфавита, верните true, если и только если данные слова отсортированы лексикографически на этом иностранном языке. Ниже приведены некоторые примеры:
Input: words = ["hello","leetcode"], order = "hlabcdefgijkmnopqrstuvwxyz"
Output: true
Explanation: As 'h' comes before 'l' in this language, then the sequence is sorted.
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.
Input: words = ["apple","app"], order = "abcdefghijklmnopqrstuvwxyz"
Output: false
Explanation: The first three characters "app" match, and the second string is shorter (in size.
Моим решением было следующее:
class Solution(object):
def isAlienSorted(self, words, order):
orderDict = {}
for index, char in enumerate(order):
orderDict[char] = index
for j in range(len(words)-1):
for i in range(min(len(words[j]),len(words[j+1]))):
word1 = words[j]
word2 = words[j+1]
if orderDict[word1[i]] == orderDict[word2[i]]:
continue
if orderDict[word1[i]] > orderDict[word2[i]]:
return False
if orderDict[word1[i]] < orderDict[word2[i]]:
return True
if len(words[j]) > len(words[j+1]):
return False
return True
почему этим проходит только 73/115 тестовых случаев?