Bei einer Eingabe einer Liste von Zahlen im Format einer aufsteigenden Ganzzahl mit Kurzschreibweise geben Sie die Sequenz vollständig aus.
Das aufsteigende Ganzzahlsequenzformat mit Kurzschreibweise ermittelt jede Zahl n mit weniger Ziffern als die Zahl davor, m . Mit d als Anzahl der Stellen in n werden die letzten d Stellen von m durch alle Stellen von n ersetzt . Hier ist eine Beispieleingabe:
123 45 6 7 89 200
Unter Anwendung der Ersetzungsregel machen wir zuerst 45 zu 145, weil 45 <123:
123 145 6 7 89 200
Wenn dieselbe Regel wiederholt angewendet wird, wird dies zu:
123 145 146 7 89 200
123 145 146 147 89 200
123 145 146 147 189 200
Die Sequenz ist jetzt sortiert (es gibt keine Nummern, für die die Regel gilt), daher ist dies die endgültige Ausgabe.
Sie können das annehmen
Kurzschreibweise wird immer verwendet, wenn dies möglich ist. Zum Beispiel wird die Eingabe
12 3
niemals sein12 13
.Zahlen werden niemals kleiner, während die Anzahl der Ziffern gleich bleibt. Zum Beispiel wird die Eingabe niemals sein
333 222
.Das Anwenden der Kurzschriftregel führt niemals zu einer Zahl, die immer noch kleiner als die vorherige Zahl in der Sequenz ist. Zum Beispiel wird die Eingabe niemals sein
123 12
.Zahlen sind immer positive Ganzzahlen und enthalten keine führenden Nullen (wenn Sie ein Zeichenfolgenformat verwenden).
Die vollständige, erweiterte Sequenz enthält niemals doppelte Zahlen. (Die Abkürzung könnte jedoch sein, zB
10 1 20 1
->10 11 20 21
.)Die Eingabe enthält mindestens eine Zahl.
Eingabe und Ausgabe können entweder Listen / Arrays von Zahlen / Zeichenfolgen oder eine einzelne Zeichenfolge mit Elementen sein, die durch keine Ziffern getrennt sind.
Da es sich um Code-Golf , wird der kürzeste Code in Bytes gewinnen.
Testfälle mit Ein- und Ausgabe in wechselnden Zeilen:
1 2 3 10 1 2 20 5 100 200 10 3 5 26 9 99 999 9999
1 2 3 10 11 12 20 25 100 200 210 213 215 226 229 299 999 9999
223 1184 334 441 5 927 2073 589 3022 82 390 5 9
223 1184 1334 1441 1445 1927 2073 2589 3022 3082 3390 3395 3399
5 10 5 20 5 30 5 40 5 50 5
5 10 15 20 25 30 35 40 45 50 55
7 8 9 70 80 90 700 800 900 7000 8000 9000
7 8 9 70 80 90 700 800 900 7000 8000 9000
42
42
Antworten:
Gelee, 7 Bytes
Probieren Sie es online! oder überprüfen Sie alle Testfälle .
Wie es funktioniert
quelle
Javascript,
4542 Bytes3 Bytes weg danke @Neil .
Die obige Funktion erwartet ein Array von Zeichenfolgen.
Code-Snippet anzeigen
quelle
z=z.slice(0,-x.length)+x,z=''
(oder einem Variablennamen Ihrer Wahl).s=>s.split` `.map(
2 Bytes (ich habe diesmal doppelt geprüft) kürzer sind alss=>s.replace(/\d+/g,
.Netzhaut, 45 Bytes
Verwendet Bilanzkreise, um die Ziffern zu zählen, die viel kosten. Noch keinen besseren Ansatz gefunden, aber ich bin daran interessiert.
Probieren Sie es hier online aus.
quelle
Gema, 35 Zeichen
Eingabe: String mit durch irgendetwas getrennten Zahlen, Ausgabe-String.
Probelauf:
quelle
Ruby, 39 Zeichen
Eingabe: Array von Zeichenfolgen, Ausgabe: Array von Zeichenfolgen.
Probelauf:
quelle
Python 2 , 58 Bytes
Probieren Sie es online!
quelle