음수가 아닌 값이 같은 배열의 다른 위치에 대한 포인터이고 그 값만 터널을 나타내는 정수 배열이 있다고 가정합니다. 따라서 위치 A의 값이 양수이고 위치 B를 가리키는 경우 위치의 값 B는 또한 양수 여야하며 터널의 양쪽 끝을 나타내려면 위치 A를 가리켜 야합니다. 그래서:
도전
- 정수 배열이 제공되면 배열이 터널링 배열 인 제한 사항을 준수하는지 확인하고 진실성과 거짓에 대해 두 개의 고유하고 일관된 값을 반환합니다.
- 어레이의 값은 비 터널 위치의 경우 0 미만이고 터널 위치의 경우 0 이상입니다. 배열이 1 인덱싱 된 경우 0 값은 비 터널 위치를 나타냅니다. 비 터널 값은 확인할 필요가 없습니다.
- 셀의 양수 값이 그 자체를 가리키면 이는 잘못된 것입니다. A가 B를 가리키고, B를 C로, C를 A로 A를 가리키는 경우에는 잘못된 것입니다. 양의 값이 배열의 한계를 초과하면 잘못된 것입니다.
예
다음 예제는 인덱스가 0입니다.
[-1, -1, -1, 6, -1, -1, 3, -1, -1] Truthy (position 3 points to position 6 and vice versa)
[1, 0] Truthy (position 0 points to position 1 and vice versa)
[0, 1] Falsey (positions 0 and 1 point to themselves)
[4, 2, 1, -1, 0, -1] Truthy
[2, 3, 0, 1] Truthy
[1, 2, 0] Falsey (no circular tunnels allowed)
[-1, 2, -1] Falsey (tunnel without end)
[] Truthy (no tunnels, that's OK)
[-1, -2, -3] Truthy (no tunnels, that's OK)
[1, 0, 3] Falsey (tunnel goes beyond limits)
[1] Falsey (tunnel goes beyond limits)
[1, 0, 3, 7] Falsey (tunnel goes beyond limits)
이것은 code-golf 이므로 각 언어마다 가장 짧은 코드가 이길 수 있습니다!
[0,1]
이고 [0,-1,2]
줄까요?
[0,1]
은 예제에 있습니다. " 셀 의 양수 값이 자신을 가리키는 경우 , 그것은 잘못된 것입니다"
[2,3,0,1]
[0]
합니까?