Verwandte Themen : Überprüfen Sie ein Stengel-Blatt-Diagramm
Eingang
Eine nicht leere Liste positiver Ganzzahlen. Bei Bedarf können sie als Zeichenfolgen verwendet werden. Sie können nicht davon ausgehen, dass es sortiert ist.
Ausgabe
Ein Stengel-Blatt-Plot der Zahlen. In einem dieser Stamm-Blatt - Auftragung, Zahlen geordnet in Zehn Stielen, dann sind alle Zahlen , die in diesen Stamm passen ihre diejenigen in den Schaft gelegt Wert, und dann werden alle sortiert. Bei dieser Herausforderung trennen Zeilenumbrüche die Stängel und Leerzeichen die Stängel von den Blättern.
Sie können alle leeren Stems einschließen oder ausschließen, die sich zwischen nicht leeren Stems befinden.
Testfälle
(Listen können in der Standardliste Ihrer Sprache verwendet werden. Ich habe JSON für die folgenden verwendet.)
Einschließlich leerer Stiele:
[1, 2, 3, 3, 3, 3, 3, 10, 15, 15, 18, 1, 100]
0 11233333
1 0558
2
3
4
5
6
7
8
9
10 0
[55, 59, 49, 43, 58, 59, 54, 44, 49, 51, 44, 40, 50, 59, 59, 59]
4 034499
5 0145899999
[10000, 10100]
1000 0
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010 0
Ausgenommen leere Stiele:
[1, 2, 3, 3, 3, 3, 3, 10, 15, 15, 18, 1, 100]
0 11233333
1 0558
10 0
[55, 59, 49, 43, 58, 59, 54, 44, 49, 51, 44, 40, 50, 59, 59, 59]
4 034499
5 0145899999
[10000, 10100]
1000 0
1010 0
Antworten:
R , 12 Bytes
Probieren Sie es online!
Erläuterung:
quelle
stem
wäre ausreichend, da es ein Array als Eingabe braucht.stem
:)Gelee , 17 Bytes
Probieren Sie es online!
quelle
Python 2 ,
787579 BytesProbieren Sie es online!
quelle
Retina ,
3830 BytesVielen Dank an Neil für das Speichern von 2 Bytes und an Leo für das Speichern von weiteren 6 Bytes.
Die Anzahl der Bytes setzt die Kodierung nach ISO 8859-1 voraus.
Die Eingabe ist eine durch Zeilenvorschub getrennte Liste von Ganzzahlen. Bei der Ausgabe werden leere Präfixe weggelassen.
Probieren Sie es online!
quelle
(?<=(\b.+ ).)¶\1
spart Ihnen zwei Bytes.JavaScript (ES6), 89 Byte
quelle
Python 2 ,
1461401331241201181091079086849182817063 Bytes-6 Bytes dank Rod. -9 bytes dank ovs.
Probieren Sie es online!
Okay, etwas ist etwas wackelig. Wie alle Python-Programmierer wissen sollten, sind Dikte ungeordnet, was bedeutet, dass die ursprüngliche Reihenfolge der Schlüssel-Wert-Paare nicht beibehalten wird. In meinem aktuellen Code sortiere ich das resultierende Diktat jedoch überhaupt nicht. Trotzdem habe ich mehrere Male getestet und jedes Mal auf Gleichheit und Ordnung geprüft, und das Diktat kommt immer richtig heraus. Wenn jemand widerlegt, dass es immer richtig läuft, oder weiß, warum das funktioniert, würde ich es gerne wissen.
Eingabe als Pythonliste und Ausgabe als Diktat. Beispiel:
Eingang:
Ausgabe:
quelle
r[i/10]=r.get(i/10,'')+`i%10`
für 82 BytesMathematica, 103 Bytes
Code aus der gelöschten Antwort von @ user202729
quelle
> <> 84 Bytes
Probieren Sie es online oder auf dem Fischspielplatz !
Angenommen, die eingegebenen Nummern befinden sich bereits auf dem Stapel .
Erläuterung: Zuerst sortieren wir den Stapel mithilfe einer Blasensortierung mit dem folgenden Codebit:
Als nächstes berechnen wir den ganzzahligen Quotienten des ersten Dings im Stapel mit 10
::a%-a,
, geben ihn in das Register ein und gehen den Stapel durch, indem wir die letzten Ziffern der Zahlen drucken, bis ihre ersten Ziffern nicht mehr mit denen des Registers übereinstimmen. dann Inkrementieren des Registers und Fortsetzen. Wenn wir das Ende der mit einem gekennzeichneten Liste erreichen0
, hören wir auf.quelle
PostgreSQL, 53 Bytes
Die Liste der Ganzzahlen muss sich in einer
integer
Spalten
einer vorhandenen Tabelle befindent
. Das Ergebnis ist eine zweispaltige Tabelle: Jede Zeile besteht aus einer "Stamm" -Spalte und einer "Blätter" -Spalte. Die Spalte "leaves" hat das JSON-Array-Format. (Wie in den Kommentaren vermerkt, muss das unter "Testfälle" angegebene Format nicht genau eingehalten werden.)Obwohl die Reihenfolge der Stems nicht garantiert ist (um 10 Bytes zu sparen,
ORDER BY 1
wird am Ende der Abfrage nicht darauf hingewiesen), schienen die Stems in meinem Test in der richtigen Reihenfolge zu landen.Ergebnis auf SQL Fiddle anzeigen
quelle