given a pattern and a string str find if str follows the same pattern here follow means a full match such that there is a bijection between a letter in pattern and a nonempty word in str example 1 input pattern abba str dog cat cat dog output true example 2 input pattern abba str dog cat cat fish output false example 3 input pattern aaaa str dog cat cat dog output false example 4 input pattern abba str dog dog dog dog output false notes you may assume pattern contains only lowercase letters and str contains lowercase letters separated by a single space reference https leetcode comproblemswordpatterndescription
def word_pattern(pattern, str):
    dict = {}
    set_value = set()
    list_str = str.split()
    if len(list_str) != len(pattern):
        return False
    for i in range(len(pattern)):
        if pattern[i] not in dict:
            if list_str[i] in set_value:
                return False
            dict[pattern[i]] = list_str[i]
            set_value.add(list_str[i])
        else:
            if dict[pattern[i]] != list_str[i]:
                return False
    return True