international morse code defines a standard encoding where each letter is mapped to a series of dots and dashes as follows a maps to b maps to c maps to and so on for convenience the full table for the 26 letters of the english alphabet is given below a b c d e f g h i j k l m n o p q r s t u v w x y z now given a list of words each word can be written as a concatenation of the morse code of each letter for example cab can be written as which is the concatenation we ll call such a concatenation the transformation of a word return the number of different transformations among all words we have example input words gin zen gig msg output 2 explanation the transformation of each word is gin zen gig msg there are 2 different transformations and
morse_code = {
    'a':".-",
    'b':"-...",
    'c':"-.-.",
    'd': "-..",
    'e':".",
    'f':"..-.",
    'g':"--.",
    'h':"....",
    'i':"..",
    'j':".---",
    'k':"-.-",
    'l':".-..",
    'm':"--",
    'n':"-.",
    'o':"---",
    'p':".--.",
    'q':"--.-",
    'r':".-.",
    's':"...",
    't':"-",
    'u':"..-",
    'v':"...-",
    'w':".--",
    'x':"-..-",
    'y':"-.--",
    'z':"--.."
}
def convert_morse_word(word):
    morse_word = ""
    word = word.lower()
    for char in word:
        morse_word = morse_word + morse_code[char]
    return morse_word

def unique_morse(words):
    unique_morse_word = []
    for word in words:
        morse_word = convert_morse_word(word)
        if morse_word not in unique_morse_word:
            unique_morse_word.append(morse_word)
    return len(unique_morse_word)