음이 아닌 정수가 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]