Desplazamiento a la izquierda y a la derecha
Crea dos funciones que desplacen circularmente un arreglo de enteros la cantidad de posiciones indicada: un desplazamiento a la izquierda lleva los valores del principio al final, mientras que uno a la derecha lleva los valores del final al principio.
[1, 2, 3, 4, 5]
[2, 3, 4, 5, 1] // desplazamiento a la izquierda de 1
[5, 1, 2, 3, 4] // desplazamiento a la izquierda de 4, o desplazamiento a la derecha de 1
[3, 4, 5, 1, 2] // desplazamiento a la derecha de 3Ejemplos
leftShift([1, 2, 3, 4], 1) ➞ [2, 3, 4, 1]
rightShift([1, 2, 3, 4], 1) ➞ [4, 1, 2, 3]
leftShift([1, 2, 3, 4, 5], 3) ➞ [4, 5, 1, 2, 3]
leftShift([1, 2, 3, 4, 5], 5) ➞ [1, 2, 3, 4, 5]
// Una vuelta completa devuelve el arreglo a su orden original.
leftShift([1, 2, 3, 4, 5], 6) ➞ [2, 3, 4, 5, 1]
// Si la cantidad de desplazamientos supera la longitud del arreglo, considera su valor módulo esa longitud.Notas
- La cantidad de desplazamientos puede superar la longitud del arreglo.
- La cantidad de desplazamientos nunca será negativa.