Entrada
Una cadena alfanumérica s
.
Salida
La cadena más corta que aparece exactamente una vez como una subcadena (contigua) s
. Los sucesos superpuestos se cuentan como distintos. Si hay varios candidatos de la misma longitud, debe mostrarlos todos en el orden de aparición. En este desafío, la cadena vacía ocurre n + 1
veces en una cadena de longitud n
.
Ejemplo
Considera la cuerda
"asdfasdfd"
La cadena vacía aparece 10 veces en ella, por lo que no es un candidato para una ocurrencia única. Cada una de las letras "a"
, "s"
, "d"
, y "f"
tiene lugar al menos dos veces, así que no son candidatos tampoco. Las subcadenas "fa"
y "fd"
aparecen solo una vez y en este orden, mientras que todas las demás subcadenas de longitud 2 aparecen dos veces. Por lo tanto, la salida correcta es
["fa","fd"]
Reglas
Ambas funciones y programas completos están permitidos, y las lagunas estándar no. El formato exacto de la salida es flexible, dentro de lo razonable. En particular, no se permite producir ningún resultado para la cadena vacía, pero arrojar un error no. El conteo de bytes más bajo gana.
Casos de prueba
"" -> [""]
"abcaa" -> ["b","c"]
"rererere" -> ["ererer"]
"asdfasdfd" -> ["fa","fd"]
"ffffhhhhfffffhhhhhfffhhh" -> ["hffff","fffff","hhhhh","hfffh"]
"asdfdfasddfdfaddsasadsasadsddsddfdsasdf" -> ["fas","fad","add","fds"]
Tabla de clasificación
Aquí está la tabla de clasificación por idioma que prometí.
Para asegurarse de que su respuesta se muestre, comience con un título, utilizando la siguiente plantilla de Markdown:
# Language Name, N bytes
¿Dónde N
está el tamaño de su envío? Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:
# 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>