LeetCode题解(0804):摩斯密码不同的单词(Python)

    技术2022-07-12  77

    题目:原题链接(简单)

    标签:字符串

    解法时间复杂度空间复杂度执行用时Ans 1 (Python) O ( N × k ) O(N×k) O(N×k) : k为单词平均长度 O ( N ) O(N) O(N)44ms (78.68%)Ans 2 (Python) O ( N × k ) O(N×k) O(N×k) : k为单词平均长度 O ( N ) O(N) O(N)36ms (95.83%)Ans 3 (Python)

    解法一(暴力解法):

    def uniqueMorseRepresentations(self, words: List[str]) -> int: morse = [".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."] codes = set() for word in words: code = "" for c in word.lower(): code += morse[ord(c) - 97] codes.add(code) return len(codes)

    解法二(暴力解法的又一种形式):

    def uniqueMorseRepresentations(self, words: List[str]) -> int: morse = [".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."] codes = set() for word in words: codes.add("".join([morse[ord(c) - 97] for c in word.lower()])) return len(codes)
    Processed: 0.053, SQL: 9