Introducción
Más complejo que un cuadrado de texto ya que esto requiere relleno y la entrada tiene un tipo de datos desconocido.
Cada año, Dyalog Ltd. celebra una competencia estudiantil. El desafío es escribir un buen código APL. Esta es una edición de código de golf agnóstico del lenguaje del décimo problema de este año.
Tengo permiso explícito para publicar este desafío aquí del autor original de la competencia. No dude en verificar siguiendo el enlace proporcionado y contactando al autor.
Problema
Escriba un programa / función que cambie la forma de una cadena o lista numérica dada en el cuadrado más pequeño que contendrá todos los elementos de la entrada, rellenando con elementos adicionales si es necesario. El elemento de relleno debe ser el elemento de relleno predeterminado para el tipo de datos dado, o cualquier elemento que elija. Los elementos del cuadrado deben estar en un orden tal que al aplanarlo se obtenga el orden original de los datos de entrada (con elementos de relleno finales, si los hay).
Casos de prueba
[1,2,3,4]
→
[[1,2],
[3,4]]
[1,2,3,4,5]
→
[[1,2,3],
[4,5,0],
[0,0,0]]
"Dyalog APL"
→
[["Dyal"], [["D","y","a","l"],
["og A"], or ["o","g"," ","A"],
["PL "], ["P","L"," "," "],
[" "]] [" "," "," "," "]]
[100]
→
[[100]]
[]
→
el equivalente más cercano de su idioma a una matriz vacía, por ejemplo []
o[[]]
[1,2,3,4,'O']
, o se garantiza que no ocurra? 3. ¿El orden requerido después del requisito de aplanamiento ignora los elementos de la almohadilla (por ejemplo, ¿podría una entrada de [1,2,3,4,5]
rendimiento [[0,0,0],[0,1,2],[3,4,5]]
o incluso [[0,1,0],[2,0,3],[0,4,5]]
)?