用於在 Python 中恢復解碼 XOR 陣列的程式


假設我們有一個隱藏陣列 arr,其中包含 n 個非負整數。該陣列現在被編碼到另一個長度為 n-1 的陣列 enc 中。enc[i] = arr[i] XOR arr[i+1]。如果我們有編碼 enc 陣列和作為實際陣列的第一個元素的整數 first,則必須找到原始陣列。

所以,如果輸入為 enc = [8,3,2,7]、first = 4,則輸出將為 [4, 12, 15, 13, 10]。

為了解決這個問題,我們將遵循以下步驟:

  • arr := 僅包含一個元素 first 的陣列

  • for i 在 0 到 enc 的大小 - 1 之間,執行

    • 在 arr 的末尾插入 arr[i] XOR enc[i]

  • 返回 arr

示例(Python)

讓我們看看以下實現以獲得更好的理解:

 即時演示

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))

輸入

[8,3,2,7], 4

輸出

[4, 12, 15, 13, 10]

更新於: 18-05-2021

338 次瀏覽

開啟您的職業生涯

完成課程,獲得認證

開始
廣告
© . All rights reserved.