w3resource

Python: Check whether it follows the sequence given in the patterns array


Write a Python program to check whether it follows the sequence given in the patterns array.

Pattern example:
For color1 = ["red", "green", "green"] and patterns = ["a", "b", "b"]
the output should be samePatterns(color1, patterns) = true;
For color2 = ["red", "green", "greenn"] and patterns = ["a", "b", "b"]
the output should be samePatterns (strings, color2) = false.

Sample Solution:

Python 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

print(is_samePatterns(["red", 
 "green", 
 "green"], ["a", 
 "b", 
 "b"])) 

print(is_samePatterns(["red", 
 "green", 
 "greenn"], ["a", 
 "b", 
 "b"])) 

Sample Output:

True
False

Python Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Python program to find the first duplicate element in a given array of integers. Return -1 If there are no such elements.
Next: Write a Python program to find a pair with highest product from a given array of integers.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.