Verwandte: Sagen Sie mir, wie viele mathematische Probleme ich zu tun habe!
Herausforderung
Ersetzen Sie bei einer streng positiven, streng aufsteigenden Ganzzahlliste L und einer Ganzzahl 3 ≤ N ≤ Länge von L die mittleren Ganzzahlen der aufeinanderfolgenden Ganzzahlreihen von L mit einer Länge ≥ N durch einen einzelnen Strich -
.
Regeln
- Horizontale Leerzeichen spielen keine Rolle.
- Optional können Sie die Einführungs-, Trenn- und Abschlusszeichen des Standardlistenformats Ihrer Sprache beibehalten. Siehe Formatbeispiele weiter unten.
Datenbeispiele
Alle diese Beispiele verwenden L = 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
.
N = 3
→ 3 5 - 8 10 - 12 14 16 - 22 24
N = 4
→ 3 5 - 8 10 11 12 14 16 - 22 24
N = 5
→ 3 5 6 7 8 10 11 12 14 16 - 22 24
N = 8
→ 3 5 6 7 8 10 11 12 14 16 17 18 19 20 21 22 24
Formatbeispiele
Bei den Eingaben
L = [3,5,6,7,8,10,11,12,14,16,17,18,19,20,21,22,24]
und N = 3
allen folgenden Zeilen handelt es sich um Beispiele für gültige Antworten, sowohl als tatsächliche Listen als auch als Zeichenfolgen:
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
[3,5,-,8,10,-,12,14,16,-,22,24]
[3,5-8,10-12,14,16-22,24]
3,5-8,10-12,14,16-22,24
Gleiches gilt für andere Listenformate, wie {1 2 3}
und (1; 2; 3)
etc. Im Zweifel? Fragen!
-
wir ein anderes Symbol verwenden oder dürfen wir ein anderes verwenden?_
damit ich weiterhin mit numerischen Arrays in J.'-'
. Möglicherweise können Sie auch alle Zeichenfolgen zusammenfassen, bevor Sie Bindestriche einfügen.[3,5,-8,10,-12,14,16,-22,24]
(Dies scheint das Format zu sein, das in Bezug auf die Typen am sinnvollsten ist)Antworten:
Python 2 ,
132115 Bytes-17 Bytes dank Leaky Nun
Probieren Sie es online!
quelle
while t+i==x[i]:
funktionieren Oder vermisse ich etwas?i
höher als die Größe desx
Gelee ,
26 2523 Bytes-2 Bytes dank Erik the Outgolfer (indem die if-Anweisung in den Hauptlink eingefügt wird)
Ein dyadischer Link, der eine Liste im
[3,5,"-",8,10,"-",12,14,16,"-",22,24]
Format zurückgibt.Probieren Sie es online!(Fußzeile wird durch Leerzeichen getrennt, um das Datenbeispielformat zu drucken).
Wie?
quelle
Pyth, 23 Bytes
Probieren Sie es online aus
Wie es funktioniert
quelle
Japt , 24 Bytes
Probieren Sie es online!
Erläuterung
quelle
Mathematica, 128 Bytes
Eingang
Ausgabe
Probieren Sie es online!
quelle
APL, 38 Bytes
quelle
PHP 7,
137 136 134 117 110108 BytesEntnimmt sich
L
dem ersten Argument und listet die Elemente danach auf. Laufen Sie mit-nr
oder versuchen Sie es online .Ersetzen Sie
$L=($a=$argv)
mit$a=$argv,$L=
(+1 Byte) für PHP <7.Nervenzusammenbruch
quelle
Netzhaut , 101 Bytes
Probieren Sie es online! Nimmt die durch Leerzeichen getrennte Liste
L
in der ersten Zeile und die GanzzahlN
in der zweiten Zeile. Erläuterung: In der ersten Stufe wird die Eingabe in eine unäre konvertiert. Die zweite Stufe ändert den Abstand zwischen aufeinanderfolgenden ganzen Zahlen in einX
. Die dritte Stufe sucht nach Läufen von aufeinanderfolgenden ganzen Zahlen, deren Länge kleiner als ist,N
und ändert ihreX
s zurück in Leerzeichen. Die vierte Stufe ändert dasX
s in-
(dies war 3 Bytes kürzer als die Verwendung von-
s an erster Stelle.) Die fünfte Stufe löscht alle noch in der Mitte eines Durchlaufs verbleibenden ganzen Zahlen sowieN
, während die letzte Stufe zurück in dezimal konvertiert wird.quelle
Ruby, 68 Bytes
Liefert einen String wie zum Beispiel
3,5-8,10-12,14,16-22,24
.Probieren Sie es online!
quelle
J , 40 Bytes
Probieren Sie es online!
Verwendet
_
anstelle von-
.Erläuterung
quelle
Jelly,
393736 BytesProbieren Sie es online aus
Übernimmt das Array über Argumente und die Ganzzahl über STDIN. Der TIO-Link verwendet die Fußzeile
ÇG
sodass die Ausgabe durch Leerzeichen getrennt ist.Wie? (Array:
a
, Integer:n
)Ich schätze, ich bin ... platt auf diesen gefallen .
quelle
JavaScript (ES6),
126119 BytesEine anonyme Funktion. Übernimmt die Eingabe in der Reihenfolge
Array L, Integer N
und gibt das Ergebnis als durch Kommas getrennte Zeichenfolge zurück.Code-Snippet anzeigen
quelle
e=>c=>
.Dyalog APL v16.0,
82807876756562 BytesWow, das ist ... schlimm. Es gibt wahrscheinlich eine viel viel kürzere Lösung mit Schablone.
Probieren Sie es online!
Golfvorschläge willkommen!
quelle