вход
Буквенно-цифровая строка s
.
Выход
Самая короткая строка, которая встречается ровно один раз как (непрерывная) подстрока в s
. Перекрывающиеся события считаются различными. Если есть несколько кандидатов одинаковой длины, вы должны вывести их всех в порядке появления. В этом вызове пустая строка встречается n + 1
раз в строке длины n
.
пример
Рассмотрим строку
"asdfasdfd"
Пустая строка встречается в ней 10 раз, поэтому она не подходит для уникального вхождения. Каждая из букв "a"
, "s"
, "d"
и "f"
происходит , по крайней мере в два раза, так что они не являются кандидатами либо. Подстроки "fa"
и "fd"
встречаются только один раз и в этом порядке, тогда как все остальные подстроки длины 2 встречаются дважды. Таким образом, правильный вывод
["fa","fd"]
правила
И функции, и полные программы разрешены, а стандартные лазейки - нет. Точное форматирование вывода является гибким, в пределах разумного. В частности, создание вывода для пустой строки допустимо, но выдача ошибки - нет. Побеждает самое низкое число байтов.
Контрольные примеры
"" -> [""]
"abcaa" -> ["b","c"]
"rererere" -> ["ererer"]
"asdfasdfd" -> ["fa","fd"]
"ffffhhhhfffffhhhhhfffhhh" -> ["hffff","fffff","hhhhh","hfffh"]
"asdfdfasddfdfaddsasadsasadsddsddfdsasdf" -> ["fas","fad","add","fds"]
Leaderboard
Вот список лидеров по языкам, который я обещал.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
# Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# 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>