โจทย์
มี 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]
อัลกอริธึม
- เริ่ม
arr = [first] - วน
iจาก 0 ถึง len(enc)-1:arr.append(arr[i] ^ enc[i]) - คืน
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]