Desplazamiento circular

Escribe una función que reciba dos arreglos de enteros y un entero n. Devuelve true si el segundo arreglo es igual al primero después de desplazarlo circularmente n posiciones hacia la izquierda; de lo contrario, devuelve false. Normaliza los desplazamientos según la longitud del arreglo, de modo que los valores negativos desplacen hacia la derecha y los valores mayores que la longitud del arreglo sean válidos.

Ejemplos

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

  • Los dos arreglos tienen la misma longitud.
  • n puede ser negativo.