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 deslocá-lo circularmente n posições para a esquerda; caso contrário, retorne false. Normalize os deslocamentos pelo comprimento do array, de modo que valores negativos desloquem para a direita e valores maiores que o comprimento do array sejam válidos.

Exemplos

circularShift([1, 2, 3, 4], [3, 4, 1, 2], 2) // true

circularShift([1, 1], [1, 1], 6) // true

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

Observações

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