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 7888885466662716666sollte 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
8888858888866656665666wir 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
3331113331119111wir 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
122222233433das Ergebnis33(1222222[33]4[33]; Länge 2 kommt zweimal vor) und nicht222(1[222][222]33433Lä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
811774177781382das 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 wie10002000diese ausgegeben werden müssen000, bei denen die meisten Sprachen0standardmäß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]
222wenn 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.
1112221112221111diese 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 1111wird immer nur als 1111und nicht als 1und 111oder 11und gezählt 11. Ich werde Ihren Testfall hinzufügen, aber die Ausgabe ist eine oder beide von 111und 222.
8888858888866656665666. Wenn ich die Herausforderung richtig interpretiert habe, schlagen sowohl die Brachylog- als auch die 05AB1E-Lösung fehl.