Ingresso
Una stringa alfanumerica s
.
Produzione
La stringa più corta che si verifica esattamente una volta come sottostringa (contigua) in s
. Le occorrenze sovrapposte vengono considerate distinte. Se sono presenti più candidati della stessa lunghezza, è necessario emetterli tutti nell'ordine in cui si verificano. In questa sfida, la stringa vuota si presenta n + 1
volte in una stringa di lunghezza n
.
Esempio
Considera la stringa
"asdfasdfd"
La stringa vuota si presenta 10 volte al suo interno, quindi non è un candidato per occorrenza univoca. Ciascuna delle lettere "a"
, "s"
, "d"
, e "f"
si verifica almeno due volte, in modo che non sono candidati sia. Sottostringhe "fa"
e "fd"
si verificano solo una volta e in questo ordine, mentre tutte le altre stringhe di lunghezza 2 si verificano due volte. Quindi l'output corretto è
["fa","fd"]
Regole
Sono consentite sia le funzioni che i programmi completi e le scappatoie standard non lo sono. L'esatta formattazione dell'output è flessibile, entro limiti ragionevoli. In particolare, non è consentito produrre output per la stringa vuota, ma non è possibile generare un errore. Vince il conteggio dei byte più basso.
Casi test
"" -> [""]
"abcaa" -> ["b","c"]
"rererere" -> ["ererer"]
"asdfasdfd" -> ["fa","fd"]
"ffffhhhhfffffhhhhhfffhhh" -> ["hffff","fffff","hhhhh","hfffh"]
"asdfdfasddfdfaddsasadsasadsddsddfdsasdf" -> ["fas","fad","add","fds"]
Classifica
Ecco la classifica linguistica che ho promesso.
Per assicurarti che la tua risposta venga visualizzata, ti preghiamo di iniziare la risposta con un titolo, usando il seguente modello Markdown:
# Language Name, N bytes
dov'è N
la dimensione del tuo invio. Se si migliora il punteggio, è possibile mantenere i vecchi punteggi nel titolo, colpendoli. Per esempio:
# 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>