Einführung:
Im Niederländischen werden die Wörter Führen und Leiden, die "leiden" bzw. "lijden" sind, auf die gleiche Weise ausgesprochen. Einer ist mit einem "kurzen ei" und einer mit einem "langen ij" geschrieben , wie wir Holländer sagen würden, aber sowohl "ei" als auch "ij" werden ausgesprochen [ɛi].
Herausforderung:
Bestimmen Sie anhand einer Liste von Zahlen, welche (falls vorhanden) führend sind und welche (falls vorhanden) leiden.
Eine führende Zahl ist:
- Eine positive Zahl
- Hat mindestens vier Ziffern
- Ist in den höchsten 50% der Liste in Bezug auf den Wert
- Befindet sich wertmäßig immer noch in den höchsten 50% der Liste, wenn die 3. Ziffer durch die 2. Ziffer ersetzt wird und die 2. Ziffernposition mit einer 0 gefüllt wird (dh
1234
würde1024
)
Eine leidende Zahl ist:
- Eine negative Zahl
- Hat mindestens vier Ziffern
- Ist in den niedrigsten 50% der Liste in Bezug auf den Wert
- Befindet sich in Bezug auf den Wert immer noch in den niedrigsten 50% der Liste, wenn die 3. Ziffer durch die 2. Ziffer ersetzt wird und die 2. Ziffernposition mit einer 0 gefüllt wird (dh
-4321
würde-4031
)
Beispiel:
Eingabe: [5827, 281993, 3918, 3854, -32781, -2739, 37819, 0, 37298, -389]
Ausgabe: führend : [5827, 281993, 37819, 37298]
; Leiden:[-32781, -2739]
Erläuterung:
Wenn wir die Zahlen sortieren und in zwei Hälften teilen, wäre dies:
[[-32781, -2739, -389, 0, 3798], [3854, 3918, 5827, 37819, 281993]]
Es gibt nur zwei negative Zahlen mit mindestens vier Ziffern : [-32781, -2739]
. Das Ändern der Ziffern wie oben beschrieben würde ihre Position nicht ändern, daher leiden beide unter Zahlen.
Für die größte Hälfte haben alle Zahlen mindestens vier Ziffern : [3854, 3918, 5827, 37819, 281993]
. Das Ändern der Ziffern wie oben beschrieben würde jedoch einige ihrer Positionen ändern. Das 3854
würde werden 3084
, wenn man es unter 3798
die niedrigsten 50% legt , 3854
ist also keine führende Zahl in dieser Liste. Gleiches gilt für 3918
das 3098
, was auch unten stehen würde 3798
. Die anderen drei Zahlen sind führend, wie 5827
es werden würde 5087
, was immer noch über 3798
und tatsächlich immer noch auf dem gleichen Index der sortierten Liste liegt. Damit[5827, 37819, 281993]
sind die führenden Zahlen.
Herausforderungsregeln:
- E / A ist flexibel. Die Eingabeliste kann eine Liste von Ganzzahlen, 2D-Ziffernlisten, eine Liste von Zeichenfolgen usw. sein. Die Ausgabe kann eine Liste von Listen von Ganzzahlen, zwei getrennten Listen, zwei Zeichenfolgen sein, die beide auf STDOUT gedruckt sind usw.
- Wenn wir feststellen, ob eine Zahl führend ist / leidet, betrachten wir ihre neue Position dieser Zahl nur, wenn nur ihre Ziffern entsprechend geändert werden, nicht nachdem wir die Änderungen auf alle Zahlen angewendet haben.
- Wir geben die ursprünglichen Zahlen aus, nicht die geänderten.
- Die Nummern in den führenden und leidenden Ausgabelisten können in beliebiger Reihenfolge sein.
- Wenn die Größe der Eingabeliste ungerade ist, gehört die Zahl in der Mitte nicht zu einer der beiden Hälften.
- Die Nummern bleiben nach der Änderung garantiert eindeutig. Eine Liste wie
[0, 1, 1045, 1485]
ist also keine gültige Eingabeliste, da1485
sie1045
nach ihrer Änderung gleich wäre .
Allgemeine Regeln:
- Dies ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich nicht von Code-Golf-Sprachen davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, eine möglichst kurze Antwort für "jede" Programmiersprache zu finden. - Für Ihre Antwort gelten Standardregeln mit Standard-E / A-Regeln . Sie können also STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
- Standardschlupflöcher sind verboten.
- Wenn möglich, fügen Sie bitte einen Link mit einem Test für Ihren Code (dh TIO ) hinzu.
- Es wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Testfälle:
Input: [5827, 281993, 3918, 3854, -32781, -2739, 37819, 0, 37298, -389]
Output: leading: [5827, 281993, 37819, 37298]; suffering: [-32781, -2739]
Input: [-100, 472, 413, -1782]
Output: leading: []; suffering: [-1782]
Input: [-1234, -1235, -1236, 1234, 1235, 1236]
Output: leading: [1234, 1235, 1236]; suffering: [-1234, -1235, -1236]
Input: [-1919, -1819, -1719, -1619, -1500, -1444, 40, 4444, 18]
Output: leading: [4444]; suffering: []
Input: [-1004, -1111, -1000]
Output: leading: []; suffering: [-1111]
Input: [-1004, -1111, -1010, 1000]
Output: leading: [1000]; suffering: [-1111]
Input: [1000, -1000]
Output: leading: [1000]; suffering: [-1000]
Input: [1000, -5000, 4000]
Output: leading: [4000]; suffering: [-5000]