Dada una lista ordenada de números (posiblemente con ceros a la izquierda), organice los números verticalmente, luego deje que todos los ceros caigan hasta el fondo y todos los voladizos caigan en la ranura abierta más inferior. Salida de los enteros resultantes, eliminando los ceros a la izquierda.
Ejemplo trabajado
Digamos que nos dieron lo siguiente como entrada:
['0000312941295', '239124000124581598', '32852353800451258', '10235923505185190', '1491359102149']
Primero lo arreglamos verticalmente:
0000312941295
239124000124581598
32852353800451258
10235923505185190
1491359102149
Luego, columna por columna, coloque los ceros "a través" de los otros números para que descansen en la parte inferior y "empuje" los otros números hacia arriba. Esto daría como resultado que los primeros dos pasos sean los siguientes:
2000312941295
339124000124581598
12852353800451258
10235923505185190
0491359102149
^
2300312941295
329124000124581598
14852353800451258
10235923505185190
0091359102149
^
2390312941295
328124000124581598
14252353800451258
10935923505185190
0001359102149
^
...
2391312941295
328524538124581598
14232323525451258
10915991001185190
0000350000049
^
Luego, suelte todos los voladizos como si la gravedad los empujara hacia abajo como arena.
2391312941295
3285245381245 1598
14232323525458258
10915991001181190
00003500000495
^
2391312941295
3285245381245 598
14232323525458158
10915991001181290
000035000004951
^
...
2391312941295
3285245381245
14232323525458159
10915991001181258
000035000004951908
^
Finalmente, genere estos números, eliminando los ceros a la izquierda. Para nuestro ejemplo trabajado, salida:
[2391312941295, 3285245381245, 14232323525458159, 10915991001181258, 35000004951908]
Para otro ejemplo, suponga la entrada de [1234000,12345678,1234,12340608,12341234].
1234000
12345678
1234
12340608
12341234
Suelta los ceros:
1234
12345678
1234163
12340208
12340004
Suelta los dígitos sobresalientes restantes:
1234
1234567
12341638
12340208
12340004
La salida es [1234, 1234567, 12341638, 12340208, 12340004].
Reglas
- La entrada puede contener ceros a la izquierda. La salida no debe contener ceros a la izquierda.
- Si corresponde, puede suponer que la entrada / salida se ajustará al tipo entero nativo de su idioma.
- La entrada y salida se pueden dar por cualquier método conveniente .
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
fuente

14232323525458159a14232323525458160)and all overhangs drop to the bottom-most open slotfue una buena solución a mi desafío roto :).. 1234es muy diferente a la salida1234.Respuestas:
Jalea , 8 bytes
Pruébalo en línea!
Cómo funciona
fuente
Sort each row of the transpose by logical NOT, pushing 0's to the end.¿Se garantiza que sea un tipo estable?sorted, que está garantizado para ser estable.ṚZẸÞ€ZṚḌ:)05AB1E , 11 bytes
Pruébalo en línea!
fuente
†usado antes, agradable.Casco , 12 bytes
Pruébalo en línea!
Explicación
fuente
Python 2 , 118 bytes
Pruébalo en línea!
Versión sin golf
Las dos primeras líneas son equivalentes a
map(lambda*a...), el comportamiento predeterminado si semapdebe completar conNones si una lista es más corta que la otra.e>'0'es equivalente acell != '0' and cell != None, porque si es cualquier dígito (1 ~ 9) tendrá un punto de código más alto, y (cualquier) cadena es más alta queNone.fuente
Pyth , 11 bytes
Pruébalo en línea!
fuente
Retina 0.8.2 ,
9592 bytesPruébalo en línea! Explicación: La primera etapa elimina los dígitos sobresalientes ya que esto hace que sea más fácil (editar: aún más fácil para un ahorro de 3 bytes) que la segunda etapa elimine los ceros. La tercera etapa elimina los ceros iniciales.
fuente
Ruby , 104 bytes
Pruébalo en línea!
Explicación
fuente
APL (Dyalog Unicode) , SBCS de 26 bytes
Función de prefijo tácito anónimo que toma una matriz de caracteres como argumento y devuelve una lista de números.
Pruébalo en línea!
⍉transponer la entrada (ya que necesitamos trabajar en las columnas)' 0'(...)⍤1⍨aplicar la siguiente función tácito a cada fila (sub-array de rango tensor 1) con' 0'como derecho argumento (⍨permutas de los argumentos):∩intersección de la fila y∘y⊃el primero de' 0'(es decir
row∩' ', todos los espacios de cada fila),seguido por…~la diferencia establecida(es decir
row~' 0', la fila pero sin espacios y ceros),seguido por…∩intersección de la fila y∘y⊃la primera∘de⌽la inversa' 0'(es decir
row∩'0', todos los ceros de cada fila)⍎⍤1evaluar cada fila (sub-matriz de tensor rango 1)∘de⍉la transposición de eso (es decir, cada columna; las filas de entrada ahora modificadas)fuente
⍎⍤1∘⍉{⍵[⍋3|2×' 0'⍳⍵]}⍤1∘⍉(⎕io←0) Puede ser más fácil de jugar, por ejemplo, no⍋⍎⍤1⍉{⍵[⍋3|2×' 0'⍳⍵]}⍤1⍉⎕Perl 5 , -p0 77 bytes
Conteo de estilo antiguo: 79 bytes (
+2parap0)Dé entrada como líneas en STDIN sin nueva línea final (de lo contrario, todo se ve como saliente y la nueva línea final sube a la parte superior cuando la cadena de entrada se bloquea). P.ej:
Fue un poco complicado hacer que el saliente cayera y
0cayera en una expresión regularPruébalo en línea!
fuente
Ruby , 203 bytes
Pruébalo en línea!
Una lambda que acepta un conjunto de cadenas y devuelve un conjunto de ints. Siento que me falta algo; esto se siente enorme: /
fuente
APL (Dyalog Classic) ,
242322 bytesPruébalo en línea!
basado en la solución de Adam
fuente