Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 XOR된 배열 디코딩을 복구하는 프로그램

<시간/>

음이 아닌 정수가 n개인 숨겨진 배열 arr이 있다고 가정합니다. 이제 이 배열은 길이가 n-1인 다른 배열 enc로 인코딩됩니다. 여기 enc[i] =arr[i] XOR arr[i+1]입니다. 인코딩된 enc 배열과 정수가 먼저 있으면 실제 배열의 첫 번째 요소인 원래 배열을 찾아야 합니다.

따라서 입력이 enc =[8,3,2,7], first =4와 같으면 출력은 [4, 12, 15, 13, 10]이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • arr :=첫 번째 요소가 하나만 있는 배열

  • 범위 0에서 enc - 1 크기의 i에 대해

    • arr

      끝에 arr[i] XOR enc[i] 삽입
  • 반환 arr

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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]