Deslocamento à esquerda e à direita
Crie duas funções que desloquem circularmente um array de inteiros pelo número de posições indicado: um deslocamento à esquerda leva os valores do início para o fim, enquanto um deslocamento à direita leva os valores do fim para o início.
[1, 2, 3, 4, 5]
[2, 3, 4, 5, 1] // deslocamento à esquerda de 1
[5, 1, 2, 3, 4] // deslocamento à esquerda de 4, ou deslocamento à direita de 1
[3, 4, 5, 1, 2] // deslocamento à direita de 3Exemplos
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]
// Uma rotação completa devolve o array à ordem inicial.
leftShift([1, 2, 3, 4, 5], 6) ➞ [2, 3, 4, 5, 1]
// Se a quantidade de deslocamentos exceder o tamanho do array, considere seu valor módulo esse tamanho.Notas
- A quantidade de deslocamentos pode exceder o tamanho do array.
- A quantidade de deslocamentos nunca será negativa.