Eingänge
Eine Liste (Array) von Zahlen oder numerischen Zeichenfolgen, wenn dies einfacher ist. Sie können davon ausgehen, dass die Liste immer mindestens zwei Elemente enthält und jedes Element eine natürliche Zahl ist (Ganzzahl größer als Null).
Ausgänge
Eine einzelne Zahl oder wieder eine numerische Zeichenfolge.
Problem
Die Idee ist, die Liste der Nummern zu reduzieren, indem die letzte Ziffer der größten Nummer in dieser aktuellen Phase der Liste entfernt wird und schließlich mit einer Nummer endet (es sollte nur eine Nummer zurückgegeben werden, selbst wenn mehrere Instanzen vorhanden sind).
Beispiel
[123,343,121,76,465,786] -- The last digit in 786 is dropped, so it becomes 78
[123,343,121,76,465,78] -- New largest number is 465, so the 5 is dropped, making it 46
[123,343,121,76,46,78] -- Repeat until left with one number
[123,34,121,76,46,78]
[12,34,121,76,46,78]
[12,34,12,76,46,78]
[12,34,12,76,46,7]
[12,34,12,7,46,7]
[12,34,12,7,4,7]
[12,3,12,7,4,7]
[1,3,1,7,4,7] -- If there are multiple max numbers, you **must** remove the last digit from all of them
[1,3,1,4]
[1,3,1]
[1,1] -- You have your answer when there is one number, or multiple numbers that are equal
1 -- Result
Schlupflöcher
Andere Einschränkungen
Ihr Programm muss für jede Liste von Zufallszahlen funktionieren (natürlich im Rahmen des Grundes).
Testfälle
[24,72,4]
[24,7,4]
[2,7,4]
[2,4]
[2]
2
[14, 7]
[1, 7]
[1]
1
[1278,232,98273,2334]
[1278,232,9827,2334]
[1278,232,982,2334]
[1278,232,982,233]
[127,232,982,233]
[127,232,98,233]
[127,232,98,23]
[127,23,98,23]
[12,23,98,23]
[12,23,9,23]
[12,2,9,2]
[1,2,9,2]
[1,2,2]
[1]
1
Wertung
Dies ist Code-Golf , also gewinnt die kürzeste Antwort in jeder Sprache!
[12, 123, 124]
heißt12
, das macht jede einzelne Gesendete Antwort falsch .Antworten:
Haskell , 16 Bytes
Probieren Sie es online aus!
quelle
Python 2 , 24 Bytes
-4 Bytes dank Notjagan.
Probieren Sie es online aus!
quelle
min(zip(*l)[0])
.Python 3 ,
24, 21, 18 BytesProbieren Sie es online aus!
DreiSechs Bytes dank @totallyhuman gespeichert!quelle
Mathematica, 29 Bytes
quelle
Japt ,
865 Bytes-1 Byte dank @Shaggy
Nimmt die Eingabe als Array numerischer Zeichenfolgen auf. Probieren Sie es online aus!
Erläuterung
quelle
n v g
würde auch für 5 Bytes funktionieren. Willkommen bei Japt übrigens.05AB1E , 3 Bytes
Probieren Sie es online aus!
quelle
[12,23,12]
.3,2,2,2,1
führt erwartungsgemäß zu 1 .PHP , 45 Bytes
Probieren Sie es online aus!
quelle
[12,23,12]
.V ,
11, 5 BytesProbieren Sie es online aus!
Ich habe dieses Warten komplizierter gemacht, als es tatsächlich ist. Diese Antwort sortiert einfach jede Zeile nach ASCII-Werten und gibt dann das allererste Zeichen zurück. Da dies eine freundliche oder langweilige Antwort ist, ist hier eine interessantere Antwort, die den ursprünglich beschriebenen Algorithmus tatsächlich implementiert:
V , 11 Bytes
Probieren Sie es online aus!
quelle
Gelee ,
32 BytesEin vollständiges Programm, das eine Liste von Zeichenlisten (Zeichenfolgen) erstellt und das Ergebnis druckt.
Probieren Sie es online aus!
Wie?
Wir müssen nur die kleinste führende Ziffer zurückgeben ...
quelle
JavaScript (ES6), 17 Byte
Nimmt die Eingabe als Array von Zeichenfolgen auf.
Versuch es
Geben Sie eine durch Kommas getrennte Liste von Zahlen ein.
quelle
,,,, 3 Bytes
Erläuterung
quelle
Braingolf , 17 Bytes
Probieren Sie es online aus!
Erläuterung
Mit anderen Worten, es wird ein Stapel erstellt, der nur aus der ersten Ziffer jedes Elements besteht, und dann die niedrigste ausgegeben.
Diese Herausforderung gab mir eine Reihe nützlicher Ideen für eingebaute Funktionen, die Braingolf hinzugefügt werden können. Dank der Hinzufügung der "speziellen" foreach-Schleife kann Braingolf dies nun in 5 Bytes tun:
Braingolf , 5 Bytes [nicht konkurrierend]
Erläuterung
Probieren Sie es online aus!
Normalerweise bin ich dagegen, eingebaute Funktionen hinzuzufügen, um nur eine Herausforderung abzuschließen, aber ich sehe eine Vielzahl von Verwendungsmöglichkeiten für die neue
(...)
foreach-Schleife. Daher denke ich nicht wirklich darüber nach, eine Funktion nur für diese Herausforderung hinzuzufügen.quelle
[12,23,12]
. Die erwartete Ausgabe ist2
, Sie haben zurückgegeben1
.1
:[12,23,12] > [12,2,12] > [1,2,1] > [1,1]
Funky , 18 Bytes
Nimmt die Eingabe als Liste von Zeichenfolgen auf.
Probieren Sie es online aus!
quelle
Pip , 5 Bytes
Nimmt die Liste der eingegebenen Nummern als Befehlszeilenargumente.
Probieren Sie es online aus!
Abwechselnd:
Probieren Sie es online aus!
Erklärungen
In beiden Programmen
g
befindet sich die Liste der Befehlszeilenargumente.SS
Sortiert mithilfe des Zeichenfolgenvergleichs, wobei die Zahlen mit den kleinsten ersten Ziffern unabhängig von ihrer Größe an erster Stelle stehen. Unary@
gibt das erste Element einer Liste oder eines Skalars an. Wir wenden es zweimal an, um die erste Ziffer der ersten Zahl nach dem Sortieren zu erhalten.Abwechselnd:
Z
ist zip; Die unäre Version kann zum Transponieren einer Liste verwendet werden. Das erste Element der transponierten Liste ist eine Liste der ersten Ziffern aller Zahlen.@
erhält diese Ziffernliste;MN
nimmt sein Minimum.quelle
PHP, 27 Bytes
(Wow, die Frage wurde völlig missverstanden. Dies funktioniert nicht. Wird später bearbeitet.)
quelle
Pyth ,
97 BytesProbieren Sie es online aus!
Erläuterung
Dies gibt im Grunde die kleinste führende Ziffer zurück.
quelle
Python 3 , 33 Bytes
Probieren Sie es online aus!
@DJMcMayhem und @totallyhuman haben bessere Lösungen, aber meine geht von einer numerischen Eingabe anstelle einer Zeichenfolge aus.
quelle
Pyth, 3 Bytes
Eingabe ist eine Liste von Zeichenfolgendarstellungen von Zahlen.
Probieren Sie es online aus
Erläuterung:
quelle