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 + 1
vezes 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 N
está 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>