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

Chương trình khôi phục giải mã mảng XORed bằng Python

Giả sử chúng ta có một mảng ẩn arr với n số nguyên không âm. Bây giờ mảng này được mã hóa thành một mã mảng khác có độ dài n-1. Vì vậy, ở đây enc [i] =arr [i] XOR arr [i + 1]. Nếu chúng ta có mảng được mã hóa đã mã hóa và một số nguyên trước tiên, đó là phần tử đầu tiên của mảng thực, chúng ta phải tìm mảng ban đầu.

Vì vậy, nếu đầu vào giống như enc =[8,3,2,7], first =4, thì đầu ra sẽ là [4, 12, 15, 13, 10].

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • arr:=mảng chỉ có một phần tử đầu tiên

  • đối với tôi trong phạm vi từ 0 đến kích thước của enc - 1, hãy thực hiện

    • chèn arr [i] XOR enc [i] vào cuối arr

  • return arr

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

def solve(enc, first):
   arr = [first]
   for i in range(0, len(enc)):
      arr.append(arr[i] ^ enc[i])
   return arr

enc = [8,3,2,7]
first = 4
print(solve(enc, first))

Đầu vào

[8,3,2,7], 4

Đầu ra

[4, 12, 15, 13, 10]