Computer >> Máy Tính >  >> Lập trình >> Python

Viết chương trình Python để tìm các hàng trùng lặp trong ma trận nhị phân

Cho một ma trận nhị phân chứa 0 và 1, nhiệm vụ của chúng ta là tìm các hàng trùng lặp và in nó.

Python cung cấp phương thức Counter () được sử dụng ở đây.

Ví dụ

Input: 1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
Output:
(1, 1, 1, 1)
(0, 0, 0, 0)

Thuật toán

Step 1: Create a binary matrix, only 0 and 1 elements are present.
Step 2: Which will have rows as key and it’s frequency as value. Lists are mutable so first, we will cast each row (list) into a tuple.
Step 3: Create a dictionary using the counter method.
Step 4: Now traverse the dictionary completely.
Step 5: Print all rows which have frequency greater than 1.

Mã mẫu

# Function to find duplicate rows in a binary matrix
from collections import Counter
def binarymatrix(A):
   A = map(tuple,A)
   dic = Counter(A)
   print("Duplicate rows of Binary Matrix ::>")
   for (i,j) in dic.items():
      if j>1:
   print (i)
   # Driver program
   if __name__ == "__main__":
      A=[]
      n=int(input("Enter n for n x n matrix : ")) #3 here
      #use list for storing 2D array
      #get the user input and store it in list (here IN : 1 to 9)
      print("Enter the element ::>")
   for i in range(n):
      row=[] #temporary list to store the row
      for j in range(n):
      row.append(int(input())) #add the input to row list
      A.append(row) #add the row to the list
   print(A)
   # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
   #Display the 2D array
   print("Display Array In Matrix Form")
   for i in range(n):
   for j in range(n):
print(A[i][j], end=" ")
print()
binarymatrix(A)

Đầu ra

Enter n for n x n matrix : 4
Enter the element ::>
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
[[1, 1, 1, 1], [0, 0, 0, 0], [1, 1, 1, 1], [0, 0, 0, 0]]
Display Array In Matrix Form
1 1 1 1
0 0 0 0
1 1 1 1
0 0 0 0
Duplicate rows of Binary Matrix ::>
(1, 1, 1, 1)
(0, 0, 0, 0)