Question: 
Write a function to check whether it follows the sequence given in the patterns array.


Model's Code:
def is_samepatterns(strings, patterns):
    if len(strings) != len(patterns):
        return False
    
    string_to_pattern = {}
    pattern_to_string = {}
    
    for s, p in zip(strings, patterns):
        if s in string_to_pattern:
            if string_to_pattern[s] != p:
                return False
        else:
            string_to_pattern[s] = p
        
        if p in pattern_to_string:
            if pattern_to_string[p] != s:
                return False
        else:
            pattern_to_string[p] = s
    
    return True



Sample Correct Code:
def is_samepatterns(colors, patterns):    
    if len(colors) != len(patterns):
        return False    
    sdict = {}
    pset = set()
    sset = set()    
    for i in range(len(patterns)):
        pset.add(patterns[i])
        sset.add(colors[i])
        if patterns[i] not in sdict.keys():
            sdict[patterns[i]] = []

        keys = sdict[patterns[i]]
        keys.append(colors[i])
        sdict[patterns[i]] = keys

    if len(pset) != len(sset):
        return False   

    for values in sdict.values():

        for i in range(len(values) - 1):
            if values[i] != values[i+1]:
                return False

    return True


Asserts:
assert is_samepatterns(["red","green","green"], ["a", "b", "b"])==True 
assert is_samepatterns(["red","green","greenn"], ["a","b","b"])==False 
assert is_samepatterns(["red","green","greenn"], ["a","b"])==False 


Tests:
Test 1 of 3: PASS
Test 2 of 3: PASS
Test 3 of 3: PASS

Test 74 of 974: 57/74 (77.02702702702703%): success