Herausforderung:
Bei einer positiven Ganzzahl geben Sie die längste einstellige Teilfolge aus, die mindestens zweimal vorkommt, UND hat die Grenzen einer anderen Ziffer (oder den Anfang / das Ende der Ganzzahl).
Ein Beispiel:
Eingabe: 7888885466662716666
Die längste Teilfolge einer einzelnen Ziffer wäre 88888
( 7[88888]5466662716666
) mit einer Länge von 5. Diese Teilfolge kommt jedoch nur einmal in der ganzen Zahl vor.
Stattdessen ist das Ergebnis für die Eingabe 7888885466662716666
sollte 6666
( 78888854[6666]271[6666]
), da es (mindestens) zweimal vorkommt.
Herausforderungsregeln:
- Die Länge der Teilsequenzen hat Vorrang vor der Häufigkeit ihres Auftretens. (Dh mit Eingabe geben
8888858888866656665666
wir aus88888
([88888]5[88888]66656665666
; Länge 5 tritt zweimal auf) und nicht666
(88888588888[666]5[666]5[666]
; Länge 3 tritt dreimal auf). - Wenn die Länge mehrerer Teilsequenzen gleich ist, geben wir die mit der größten Häufigkeit aus. Dh mit Input geben
3331113331119111
wir aus111
(333[111]333[111]9[111]
; Länge 3, kommt dreimal vor) und nicht333
([333]111[333]1119111
; Länge 3 auch, kommt aber zweimal vor) - Wenn die Anzahl der Vorkommen und die Länge mehrerer Teilsequenzen gleich sind, können Sie eine oder alle (in beliebiger Reihenfolge) ausgeben. Dh mit Eingang
777333777333
, sind die möglichen Ausgänge:777
;333
;[777, 333]
; oder[333, 777]
. - Die Subsequenz muss Grenzen anderer Ziffern haben (oder den Anfang / das Ende der ganzen Zahl). Dh bei Eingabe ist
122222233433
das Ergebnis33
(1222222[33]4[33]
; Länge 2 kommt zweimal vor) und nicht222
(1[222][222]33433
Länge 3 kommt zweimal vor, beide ungültig).- Dies gilt für alle Nummern, die auf den Vorkommenszähler angerechnet werden. Dh bei Eingabe ist
811774177781382
das Ergebnis8
([8]117741777[8]13[8]2
; Länge 1, kommt dreimal vor) und nicht77
(811[77]41[77]781382
/811[77]417[77]81382
; Länge 2, kommt zweimal mit einer ungültigen vor) oder1
(8[1][1]774[1]7778[1]382
; Länge 1, kommt viermal mit zwei ungültigen vor).
- Dies gilt für alle Nummern, die auf den Vorkommenszähler angerechnet werden. Dh bei Eingabe ist
- Sie können davon ausgehen, dass die Eingabe keine Ziffern enthält
0
(sie stimmt überein[1-9]+
). (Damit soll vermieden werden, dass Testfälle wie10002000
diese ausgegeben werden müssen000
, bei denen die meisten Sprachen0
standardmäßig ausgegeben werden.) - Sie können davon ausgehen, dass die Eingabe immer mindestens eine gültige Ausgabe enthält.
- I / O sind beide flexibel. Kann eine Liste / ein Array / ein Datenstrom aus Ziffern / Bytes / Zeichen oder eine Zeichenfolge anstelle einer einzelnen Ganzzahl sein.
Allgemeine Regeln:
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
Lassen Sie sich von Code-Golf-Sprachen nicht davon abhalten, Antworten mit Nicht-Codegolf-Sprachen zu veröffentlichen. Versuchen Sie, für jede Programmiersprache eine möglichst kurze Antwort zu finden. - Für Ihre Antwort gelten Standardregeln. Daher dürfen Sie STDIN / STDOUT, Funktionen / Methoden mit den richtigen Parametern und vollständige Programme vom Rückgabetyp verwenden. Ihr Anruf.
- Standardlücken sind verboten.
- Fügen Sie nach Möglichkeit einen Link mit einem Test für Ihren Code hinzu.
- Außerdem wird dringend empfohlen, eine Erklärung für Ihre Antwort hinzuzufügen.
Testfälle:
Input: 7888885466662716666 / [7,8,8,8,8,8,5,4,6,6,6,6,2,7,1,6,6,6,6]
Output: 6666 / [6,6,6,6]
Input: 3331113331119111 / [3,3,3,1,1,1,3,3,3,1,1,1,9,1,1,1]
Output: 111 / [1,1,1]
Input: 777333777333 / [7,7,7,3,3,3,7,7,7,3,3,3]
Possible outputs: 777; 333; [777,333]; [333;777] / [7,7,7]; [3,3,3]; [[7,7,7],[3,3,3]]; [[3,3,3],[7,7,7]]
Input: 122222233433 / [1,2,2,2,2,2,2,3,3,4,3,3]
Output: 33 / [3,3]
Input: 811774177781382 / [8,1,1,7,7,4,1,7,7,7,8,1,3,8,2]
Output: 8 / [8]
Input: 555153333551 / [5,5,5,1,5,3,3,3,3,5,5,1]
Output: 1 / [1]
Input: 12321 / [1,2,3,2,1]
Possible outputs: 1; 2; [1,2]; [2,1] / [1]; [2]; [[1],[2]]; [[2],[1]]
Input: 944949949494999494 / [9,4,4,9,4,9,9,4,9,4,9,4,9,9,9,4,9,4]
Output: 4 / [4]
Input: 8888858888866656665666 / [8,8,8,8,8,5,8,8,8,8,8,6,6,6,5,6,6,6,5,6,6,6]
Output: 88888 / [8,8,8,8,8]
Input: 1112221112221111 / [1,1,1,2,2,2,1,1,1,2,2,2,1,1,1,1]
Output: 111; 222; [111,222]; [222,111] / [1,1,1]; [2,2,2]; [[1,1,1],[2,2,2]]; [[2,2,2],[1,1,1]]
Input: 911133111339339339339339 / [9,1,1,1,3,3,1,1,1,3,3,9,3,3,9,3,3,9,3,3,9,3,3,9]
Output: 111 / [1,1,1]
222
wenn es von anderen ganzen Zahlen begrenzt wird. Ich denke, wir sollten das Vorkommen, von dem ein Teilstring ist, einfach nicht zählen 1111
. Warten Sie besser auf die OP.
1112221112221111
diese sind die Teilfolgen und ihre zählt: 1111 (1)
, 111 (2)
, 222 (2)
. Da wir nur Sequenzen mindestens doppelt vorkommende ausgibt, kann der Ausgang einer der folgenden sein: 111
, 222
, [111,222]
, [222,111]
. (Weitere Informationen finden Sie in der vierten Regel.) Grundsätzlich 1111
wird immer nur als 1111
und nicht als 1
und 111
oder 11
und gezählt 11
. Ich werde Ihren Testfall hinzufügen, aber die Ausgabe ist eine oder beide von 111
und 222
.
8888858888866656665666
. Wenn ich die Herausforderung richtig interpretiert habe, schlagen sowohl die Brachylog- als auch die 05AB1E-Lösung fehl.