Entrada
Uma sequência alfanumérica s.
Saída
A cadeia mais curta que ocorre exatamente uma vez como uma substring (contígua) s. Ocorrências sobrepostas são contadas como distintas. Se houver vários candidatos do mesmo tamanho, você deve enviar todos eles na ordem da ocorrência. Nesse desafio, a cadeia vazia ocorre n + 1vezes em uma cadeia de comprimento n.
Exemplo
Considere a string
"asdfasdfd"
A cadeia vazia ocorre 10 vezes nela, portanto, não é candidata a ocorrência única. Cada uma das letras "a", "s", "d", e "f"ocorre pelo menos duas vezes, para que eles não são candidatos também. As subsequências "fa"e "fd"ocorrem apenas uma vez e por esta ordem, enquanto todas as outras subsequências de comprimento dois ocorrer duas vezes. Assim, a saída correta é
["fa","fd"]
Regras
Ambas as funções e programas completos são permitidos, e brechas padrão não são. A formatação exata da saída é flexível, dentro do razoável. Em particular, não é permitido produzir saída para a sequência vazia, mas gerar um erro não é. A menor contagem de bytes vence.
Casos de teste
"" -> [""]
"abcaa" -> ["b","c"]
"rererere" -> ["ererer"]
"asdfasdfd" -> ["fa","fd"]
"ffffhhhhfffffhhhhhfffhhh" -> ["hffff","fffff","hhhhh","hfffh"]
"asdfdfasddfdfaddsasadsasadsddsddfdsasdf" -> ["fas","fad","add","fds"]
Entre os melhores
Aqui está o placar por idioma que prometi.
Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:
# Language Name, N bytes
onde Nestá o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:
# 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>