Intro
Komplexer als ein Textquadrat, da dies Auffüllen erfordert und die Eingabe einen unbekannten Datentyp hat.
Jedes Jahr veranstaltet Dyalog Ltd. einen Studentenwettbewerb. Die Herausforderung besteht darin, guten APL-Code zu schreiben . Dies ist eine sprachunabhängige Code-Golf- Ausgabe des diesjährigen zehnten Problems.
Ich habe die ausdrückliche Erlaubnis, diese Herausforderung hier vom ursprünglichen Autor des Wettbewerbs zu posten. Sie können dies überprüfen, indem Sie dem angegebenen Link folgen und den Autor kontaktieren.
Problem
Schreiben Sie ein Programm / eine Funktion, die eine bestimmte Zeichenfolge oder numerische Liste in das kleinste Quadrat umformt, das alle Elemente der Eingabe enthält, und füllen Sie sie gegebenenfalls mit zusätzlichen Elementen auf. Das Pad-Element sollte das Standardfüllelement für den angegebenen Datentyp oder ein beliebiges Element Ihrer Wahl sein. Die Elemente des Quadrats sollten in einer solchen Reihenfolge sein, dass durch Abflachen die ursprüngliche Reihenfolge der Eingabedaten erhalten wird (ggf. mit nachfolgenden Auffüllelementen).
Testfälle
[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]]
[]
→
Ihre Sprache entspricht am ehesten einer leeren Matrix, z. B. []
oder[[]]
[1,2,3,4,'O']
oder wird sie garantiert nicht auftreten? 3. Ignoriert die erforderliche Reihenfolge nach dem Abflachen die Pad-Elemente (z. B. könnte eine Eingabe der [1,2,3,4,5]
Ausbeute [[0,0,0],[0,1,2],[3,4,5]]
oder sogar [[0,1,0],[2,0,3],[0,4,5]]
)?