Deslocamento circular

Escreva uma função que receba dois arrays de inteiros e um inteiro n. Retorne true se o segundo array for igual ao primeiro após um deslocamento circular de n posições para a esquerda; caso contrário, retorne false. Normalize os deslocamentos pelo tamanho do array, de modo que valores negativos desloquem para a direita e valores maiores que o tamanho do array sejam válidos.

Exemplos

circular_shift([1, 2, 3, 4], [3, 4, 1, 2], 2); // true

circular_shift([1, 1], [1, 1], 6); // true

circular_shift([0, 1, 2, 3, 4, 5], [3, 4, 5, 2, 1, 0], 3); // false

Notas

  • Os dois arrays têm o mesmo tamanho.
  • n pode ser negativo.