Change language

Python | Check if two lists match in a circle

| | |

Examples :

 Input: list1 = [10, 10, 0, 0, 10] list2 = [10, 10, 10, 0, 0] Output: Yes Explanation: yes they are circularly identical as when we write the list1 last index to second last index, then we find it is circularly same with list1 Input: list1 = [10, 10, 10, 0, 0] list2 = [1, 10, 10, 0, 0] Output: No 

Method 1. Using list traversal

Using traversing , we have to double the given list. Check for any x (0 "= n) for any x + n and compare with list2 to see if list1 and list2 are the same, if both are the same then list2 is cyclically identical. Check this property using two loops. The first loop will run from 0 to len (list1) and then check if the index (x to x + n) is the same as list2, if yes then returns true, otherwise returns false.

Python implementation of the above approach:

# Python program to check if two
# lists circularly identical
# using a workaround

 
# function to check circular identity or not

def circularly_identical (list1, list2):

 

# doubling list

list3 = list1 * 2

 

# crawl list twice1

for x in range ( 0 , len (list1)):

z = 0  

 

# check if list2 == list1 briefly

for y in range (x, x + len (list1)):

if list2 [z] = = list3 [y]:

z + = 1

else :

break

 

# if all n elements are the same in a circle

if z = = len (list1):

return True  

 

return False

  

  

  
# driver code

list1 = [ 10 , 10 , 0 , 0 , 10 ]

list2 = [ 10 , 10 , 10 , 0 , 0 ]

list3 = [ 1 , 10 , 10 , 0 , 0 ]

 

 
# check list 1 and list 2

if < / code> (circularly_identical (list1, list2)):

print " Yes " 

else :

print "No"

 
# check list 2 and list 3

if (circularly_identical (list2, list3)):

print " Yes " 

else :

print "No"  

Exit :

 Yes No 

C tutorial 1: using the map () function

Using the Python built-in function map (), we can do this in one step where we need to map list2 to a string and then see if it exists when mapping a double from list1 (2 * list1) to on another line.

Below is the Python implementation of the above approach:

# Python program to check if two
# the lists are circularly identical
# using the map function

 
# function to check circular identity or not

def circularly_identical (list1, list2):

  

  return ( ’’ . join ( map ( str , list2)) in ’’ . join ( map ( str , list1 * 2 )))

 

 
# driver code

list1 = [ 10 , 10 , < / code> 0 , 0 , 10 ]

list2 = [ 10 , 10 , 10 , 0 , 0 ]

list3 = [ 1 , 10 , 10 , 0 , 0 ]

  

 
# check list 1 and list 2

if (circularly_identical (list1, list2)):

print "Yes"  

else :

print "No"

 
# check list 2 and list 3

if (circularly_identical (list2, list3)):

print "Yes"  

else :

print < code class = "string"> "No"  

Exit:

 Yes No 

Python | Check if two lists match in a circle circle: Questions

Python | Check if two lists match in a circle Loops: Questions

Shop

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Best laptop for Minecraft

$590

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method