Desplazamiento a la izquierda y a la derecha
Crea dos funciones que desplacen circularmente un arreglo de enteros la cantidad indicada de posiciones: un desplazamiento a la izquierda mueve los valores del inicio al final, mientras que uno a la derecha mueve los valores del final al inicio.
[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
Program.LeftShift(new int[] { 1, 2, 3, 4 }, 1) ➞ new int[] { 2, 3, 4, 1 }
Program.RightShift(new int[] { 1, 2, 3, 4 }, 1) ➞ new int[] { 4, 1, 2, 3 }
Program.LeftShift(new int[] { 1, 2, 3, 4, 5 }, 3) ➞ new int[] { 4, 5, 1, 2, 3 }
Program.LeftShift(new int[] { 1, 2, 3, 4, 5 }, 5) ➞ new int[] { 1, 2, 3, 4, 5 }
// Una vuelta completa devuelve el arreglo a su orden inicial.
Program.LeftShift(new int[] { 1, 2, 3, 4, 5 }, 6) ➞ new int[] { 2, 3, 4, 5, 1 }
// Reduce las cantidades de desplazamientos mayores que la longitud del arreglo módulo esa longitud.Notas
- La cantidad de desplazamientos puede superar la longitud del arreglo.
- La cantidad de desplazamientos nunca es negativa.