Dada una lista de enteros arr, duplica cada 0 que encuentres moviendo
todos los elementos a la derecha un lugar.
Observa que los elementos que terminen en una posición fuera del tamaño original del arreglo no deben ser escritos.
Resuelve este reto in-place, es decir, sin utilizar memoria adicional y modificando el arreglo recibido.
Ejemplo 1:
- Entrada:
[1,0,2,3,0,4,5,0] - Salida:
None - Why?: Después de llamar tu función, el arreglo de entrada es modificado
para formar
[1,0,0,2,3,0,0,4].
Ejemplo 2:
- Entrada:
[1, 2, 3] - Salida:
None - Why?: Después de llamar tu función, el arreglo de entrada es modificado
para formar
[1,2,3].
Notas: Existe una solución O(n) en tiempo.
- Agrega un directorio con tu username de GitHub al directorio
solutions, por ejemplo:solutions/pablotrinidad. - El directorio que agregues debe contener dos archivos;
__init__.py(vacío) ysolution.py. - El archivo
solution.pydebe contener lo siguiente:
from typing import List
class Solution:
def duplicate_zeros(self, arr: List[int]):
# AQUÍ VA TU SOLUCIÓN- Cuando tu solución esté lista, abre un PR en este repositorio.
- El repositorio correrá pruebas de legibilidad (readability).
- El repositorio probará que tu solución sea correcta.
- Cuando las dos pruebas (
gradingylinting) pasen, alguien del team revisará y hará merge de tu PR. - Enjoy 💕.
- Puedes revisar que tu solución sea correcta en tu compu corriendo el comando
python3 grader/main.py. - Puedes verificar la legibilidad corriendo
pylint solutions/(tal vez necesitespip install pylintantes).