Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมกู้คืน Array เดิมจาก XORed Array ใน Python

โจทย์

มี Array arr ถูก Encode เป็น enc โดย enc[i] = arr[i] XOR arr[i+1] ได้รับ enc และ first (ค่าแรกของ arr) ต้องกู้คืน arr เดิม

ตัวอย่าง: enc = [8,3,2,7], first = 4 → Output: [4, 12, 15, 13, 10]

อัลกอริธึม

  1. เริ่ม arr = [first]
  2. วน i จาก 0 ถึง len(enc)-1: arr.append(arr[i] ^ enc[i])
  3. คืน arr

โค้ด Python


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

enc = [8, 3, 2, 7]
first = 4
print(solve(enc, first))  # Output: [4, 12, 15, 13, 10]

Input / Output

Input:  [8,3,2,7], 4
Output: [4, 12, 15, 13, 10]