Défi:
Étant donné un entier positif, sortez la sous-séquence à un chiffre la plus longue qui se produit au moins deux fois, ET a les limites d'un autre chiffre (ou le début / la fin de l'entier).
Un exemple:
Entrée: 7888885466662716666
La sous-séquence la plus longue d'un seul chiffre serait 88888
( 7[88888]5466662716666
) avec une longueur de 5. Cependant, cette sous-séquence ne se produit qu'une seule fois dans l'entier.
Au lieu de cela, le résultat de l'entrée 7888885466662716666
doit être 6666
(78888854[6666]271[6666]
), car il se produit (au moins) deux fois.
Règles du défi:
- La longueur des sous-séquences a priorité sur la quantité de fois où elle se produit. (C'est-à-dire avec entrée
8888858888866656665666
, nous sortons88888
([88888]5[88888]66656665666
; longueur 5, se produit deux fois), et non666
(88888588888[666]5[666]5[666]
; longueur 3, se produit trois fois). - Si la longueur de plusieurs sous-séquences est égale, nous sortons celle avec le plus grand nombre d'occurrences. C'est-à-dire avec une entrée
3331113331119111
, nous sortons111
(333[111]333[111]9[111]
; longueur 3, se produit trois fois), et non333
([333]111[333]1119111
; longueur 3 également, mais se produit deux fois) - Si le nombre d'occurrences et la longueur de plusieurs sous-séquences sont égaux, vous pouvez sortir l'un d'eux ou tous (dans n'importe quel ordre). -À- dire avec entrée
777333777333
, les sorties possibles sont:777
;333
;[777, 333]
; ou[333, 777]
. - La sous-séquence doit avoir des limites d'autres chiffres (ou le début / la fin de l'entier). C'est-à-dire qu'avec l'entrée,
122222233433
le résultat est33
(1222222[33]4[33]
; la longueur 2, se produit deux fois) et non222
(1[222][222]33433
, la longueur 3, se produit deux fois avec les deux invalides).- Cela s'applique à tous les nombres qui sont comptés dans le compteur d'occurrences. C'est-à-dire avec une entrée
811774177781382
le résultat est8
([8]117741777[8]13[8]2
; la longueur 1, se produit trois fois) et non77
(811[77]41[77]781382
/811[77]417[77]81382
; la longueur 2, se produit deux fois avec un invalide) ni1
(8[1][1]774[1]7778[1]382
; la longueur 1, se produit quatre fois avec deux invalides).
- Cela s'applique à tous les nombres qui sont comptés dans le compteur d'occurrences. C'est-à-dire avec une entrée
- Vous pouvez supposer que l'entrée ne contiendra aucun chiffre
0
(elle correspondra[1-9]+
). (C'est pour éviter d'avoir à traiter des cas de test comme10002000
celui-ci devrait sortir000
, où la plupart des langues sortiraient0
par défaut.) - Vous pouvez supposer que l'entrée contiendra toujours au moins une sortie valide.
- Les E / S sont toutes deux flexibles. Peut être une liste / tableau / flux de chiffres / octets / caractères ou sous forme de chaîne au lieu d'un seul entier.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, fonctions / méthode avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- De plus, l'ajout d'une explication à votre réponse est fortement recommandé.
Cas de test:
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
lorsqu'il est délimité par d'autres entiers. Je suppose que nous ne devrions tout simplement pas compter l'occurrence qui est une sous-chaîne de 1111
. Il vaut mieux attendre le PO cependant.
1112221112221111
ce sont les séquences et leurs chefs: 1111 (1)
, 111 (2)
, 222 (2)
. Étant donné que nous sorties uniquement des séquences se produisant au moins deux fois, la sortie peut être l' une: 111
, 222
, [111,222]
, [222,111]
. (Voir la quatrième règle pour plus d'informations.) Fondamentalement 1111
, ne comptera que comme 1111
, et non comme 1
et 111
ou 11
et 11
. J'ajouterai votre cas de test, mais la sortie est l'un ou les deux de 111
et 222
.
8888858888866656665666
. Si j'ai correctement interprété le défi, les solutions Brachylog et 05AB1E échouent.