Related Articles
Python | Check whether two lists follow same pattern or not
• Last Updated : 17 Sep, 2019

Given two lists and , check if they follow the same pattern or not.
Condition for pattern matching:

1. > , then >
2. = , then =
3. < , then < ,
for all i, j.

Example:

Input:
2 17 100
10 20 50

Output:
YES

Input:
5 7 10 33
10 50 10 45

Output:
NO

Approach:
To check if two lists follow the above pattern. Sort both lists and find the index of previous list element in the sorted list. If indices match, then pattern matched otherwise no pattern matched.

Code : Python program for checking the pattern.

 `# python program for above approach``a ``=` `[``5``, ``7``, ``10``, ``33``]``b ``=` `[``10``, ``50``, ``10``, ``45``]``aa ``=` `a.copy()``bb ``=` `b.copy()`` ` `# sorting the list``aa.sort()``bb.sort()`` ` `for` `i ``in` `range``(``len``(a)``-``1``):``     ` `    ``# checking the index are same or not``    ``if` `aa[i] < aa[i ``+` `1``] ``and` `bb[i] < bb[i ``+` `1``]:``        ``if` `a.index(aa[i])``=``=` `b.index(bb[i]) ``and` `a.index(aa[i ``+` `1``]) ``=``=` `b.index(bb[i ``+` `1``]):``            ``flag ``=``"YES"``        ``else``:``            ``flag ``=``"NO"``            ``break``     ` `    ``elif` `aa[i] ``=``=` `aa[i ``+` `1``] ``and` `bb[i] ``=``=` `bb[i ``+` `1``]:``        ``if` `a.index(aa[i]) ``=``=` `b.index(bb[i]) ``and` `a.index(aa[i ``+` `1``]) ``=``=` `b.index(bb[i ``+` `1``]):``            ``flag ``=` `"YES"``        ``else``:``            ``flag ``=` `"NO"`    `            ``break``     ` `    ``else``:``        ``flag ``=` `"NO"``        ``break``     ` `print``(flag)`

Output :

```NO
```

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up