Contribution
Une chaîne alphanumérique s
.
Sortie
La chaîne la plus courte qui apparaît exactement une fois en tant que sous-chaîne (contiguë) dans s
. Les occurrences qui se chevauchent sont comptées comme distinctes. S'il y a plusieurs candidats de la même longueur, vous devez tous les afficher dans l'ordre d'apparition. Dans ce défi, la chaîne vide se produit n + 1
fois dans une chaîne de longueur n
.
Exemple
Considérez la chaîne
"asdfasdfd"
La chaîne vide y apparaît 10 fois, elle n'est donc pas candidate à une occurrence unique. Chacune des lettres "a"
, "s"
, "d"
et "f"
se produit au moins deux fois, donc ils ne sont pas candidats non plus . Les sous "fa"
- chaînes et "fd"
n'apparaissent qu'une seule fois et dans cet ordre, tandis que toutes les autres sous-chaînes de longueur 2 se produisent deux fois. Ainsi, la sortie correcte est
["fa","fd"]
Règles
Les fonctions et les programmes complets sont autorisés, mais les failles standard ne le sont pas. Le formatage exact de la sortie est flexible, dans des limites raisonnables. En particulier, la production d'aucune sortie pour la chaîne vide est autorisée, mais le lancement d'une erreur ne l'est pas. Le nombre d'octets le plus bas gagne.
Cas de test
"" -> [""]
"abcaa" -> ["b","c"]
"rererere" -> ["ererer"]
"asdfasdfd" -> ["fa","fd"]
"ffffhhhhfffffhhhhhfffhhh" -> ["hffff","fffff","hhhhh","hfffh"]
"asdfdfasddfdfaddsasadsasadsddsddfdsasdf" -> ["fas","fad","add","fds"]
Classement
Voici le classement par langue que j'ai promis.
Pour vous assurer que votre réponse s'affiche, veuillez commencer votre réponse avec un titre, en utilisant le modèle Markdown suivant:
# Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores dans le titre, en les barrant. Par exemple:
# Ruby, <s>104</s> <s>101</s> 96 bytes
<script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>site = 'meta.codegolf',postID = 5314,isAnswer = true,QUESTION_ID = 45056;jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)<\\/code><\/pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>