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 + 1volte 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'è Nla 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>