LeetCode 953 Verifying an Alien Dictionary 解题报告

题目要求

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 order of the alphabet, return true if and only if the given words are sorted lexicographicaly in this alien language.

题目分析及思路

给定一组字符串以及一个字母表顺序,判断这组字符串是否是按照给定字母表顺序排列的。可以对该组字符串进行两两比较,依据最短字符串长度分别遍历两个字符串。若前者的字符顺序小于后者的,则跳出循环,继续比较其他字符串;若前者的字符顺序大于后者的,则返回False;若相等则继续比较,直到所有字符都相等,若较长字符串在前则返回False。

python代码

class Solution:

    def isAlienSorted(self, words: List[str], order: str) -> bool:

        for idx in range(1, len(words)):

            len_min = min(len(words[idx-1]), len(words[idx]))

            flag = 0

            while len_min:

                if order.index(words[idx-1][flag]) < order.index(words[idx][flag]):

                    break

                elif order.index(words[idx-1][flag]) > order.index(words[idx][flag]):

                    return False

                len_min -= 1

                flag += 1

            if len_min == 0 and len(words[idx-1]) > len(words[idx]):

                return False

        return True

                

                

            

            

        

 

posted on 2019-03-12 10:01  锋上磬音  阅读(195)  评论(0编辑  收藏  举报