var QUESTION_ID=77608,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/77608/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Ответы:
Python 3,
383433 байтаЭто ожидает список цифр или одиночных строк в качестве аргумента. Проверьте это на Ideone .
Спасибо @xsot за 4 байта!
Спасибо @immibis за удаление 1 байта!
источник
lambda s:s==sorted(s,key=`s`.find)
s.find
?s
должен быть списком одиночных строк (или я должен был бы привести егоs
к списку для сравнения), иlist.find
он не определен ...s.index
тогда? Кажется, работает на меня.JavaScript (ES6), 27 байт
Использует отрицательный прогноз для поиска двух несмежных цифр. Если существует хотя бы две такие цифры, то их можно выбрать так, чтобы первая цифра предшествовала другой цифре.
источник
05AB1E , 4 байта
Код:
Объяснение:
Использует кодировку CP-1252 .
Попробуйте онлайн!
источник
Желе , 5 байт
Попробуйте онлайн!
Как это работает
источник
Pyth,
65 байт1 байт благодаря FryAmTheEggman
Вдохновленный решением Python здесь .
Тестирование
Объяснение:
источник
SIxLQ
похоже на работу.Q
, похоже, не анализируется должным образом, он меняет порядок аргументов или что-то в этом роде, поэтому вы получаете все0
s, и он всегда дает true. Вот тестовый набор.R,
6648464338 байтЭто функция, которая принимает входные данные как вектор цифр и возвращает логическое значение. Чтобы вызвать его, назначьте его переменной.
Не самый короткий, но я думал, что это был забавный подход. Мы запускаем length, кодируем ввод и извлекаем значения. Если список значений содержит дубликаты, вернуть
FALSE
, в противном случае вернутьTRUE
.Проверьте все тестовые примеры онлайн
Благодаря MickyT сэкономлено 20 байт, 3 благодаря Albert Masclans и 5 благодаря mnel!
источник
MATL , 8 байт
Выходные данные - это массив, содержащий только единицы для истинности, или массив, содержащий хотя бы один ноль для Falsey.
Попробуйте онлайн!
объяснение
Рассмотрим вход
22331
, который удовлетворяет условию. Проверка того, что каждый символ равен друг другу, дает двумерный массивОкончательный результат должен быть достоверным, если строки этого массива (считаются атомарными) имеют (лексикографический) убывающий порядок . Для сравнения ввод
22321
дает массивв котором строки не отсортированы.
источник
Сетчатка , 17 байт
Попробуйте онлайн! (Немного изменен для запуска всех тестовых случаев одновременно.)
Первые матчи регулярного выражения цифра , которые будут разделены другими цифрами, поэтому мы получаем
0
для действительных входов и в любом месте между1
и9
недействительные входы (из - за алчности из.+
, мы не можем получить больше , чемn-1
спичек дляn
различных цифр).Чтобы инвертировать достоверность результата, мы рассчитываем число
0
s, которое предназначено1
для действительных и0
недействительных входных данных .источник
A`(.)(?!\1).+\1
для 15 байтов. Также работает для нескольких входов. Истина - вход, ложь - ничто. Один не просто обгоняет Мартина на его родном языке. :)Java,
161156 байтПотому что Java ...
Бесстыдно
крадязаимствуя регулярное выражение из этого ответа, потому что я начал пытаться делать это с массивами и математическими манипуляциями, но это стало ужасно сложным, и регулярное выражение - такой же хороший инструмент, как и любой другой, для решения этой проблемы.Ungolfed:
Выложил как разумный Java человек:
источник
like a sensible Java person
Это было бы, не используя Java никогда.s->s.match("(.)(?!\\1).*\\1")
Pyth, 7 байт
Тестовый пакет .
источник
Рубин, 23 байта
Анонимная функция. Принимает строку. Regex strat.
Распределение регулярных выражений
!~
означает, что если в строке нет совпадений с регулярным выражением, returntrue
и иначе returnfalse
.источник
Mathematica, 26 байтов
источник
MATL,
1311 байтСпасибо Луису Мендо за сохранение двух байтов!
Попробуйте онлайн!
объяснение
источник
j
. Кроме того, я думаю, что вы можете двигатьсяvA
в цикле и удалить]
Y&
внутрь, но это не сработало, потому чтоfd2<
может быть пустым. ПеремещениеvA
внутри прекрасно работает, хотя! Кроме того, мне бы очень хотелось, чтобы у нас был стабильный файл,unique
который не занимал тонны байтов.u
стабильным по умолчанию (S
впоследствии вы всегда можете включить два байта). Что вы думаете?Haskell, 44 байта
Пример использования:
((==)<*>nub).map head.group $ "44999911"
->True
.Неточечная версия:
источник
J, 8 байт
Проверьте это с J.js .
Как это работает
источник
:]
:i
:-1
Python,
5655 байтисточник
int not subscriptable
)~
(который буквально эквивалентен1-
):a=lambda s:~(s[0]in s.lstrip(s[0]))&a(s[1:])if s else 1
C #, 119 байт
Ungolfed
источник
Юлия, 35 байт
По какой-то причине
sort
не принимает строку, ноissorted
делает ...источник
issorted
работает, ноsort
не работает.sorted
функция Python сначала превращает свой повторяемый аргумент в изменяемый список - поэтомуsorted(string)
возвращает список строкФактор, 22 байта
Делает то, что говорит на банке. Как анонимная функция, вы должны
call
сделать это или сделать это: word ;
.источник
Луа,
1079485 байт13 байтов сохранено благодаря @LeakyNun
По крайней мере, это лучше, чем Java. Луа сосет при манипулировании струнами, но я думаю, что это достаточно хорошо :).
Он принимает входные данные в качестве аргумента командной строки
и выводит ихТеперь выводит используя свой код выхода. Код выхода 0 для правдивых и 1 для ложных1
для истинных и ложных случаевfalse
.Ungolfed
Будьте внимательны, есть две магические переменные
...
, первая из которых содержит аргумент программы, вторая является локальной для анонимной функции и содержит ее параметрыисточник
os.exit()
наi=#0
...JavaScript ES6,
7169 байтИли, что эквивалентно:
Гольф в прогрессе.
Проверьте контрольные примеры
источник
C # 111 байт
старая стратегия 131 байт
первый гольф, я думаю, что я хорошо в
источник
С
747371 байтПобрил
одинтри байта благодаря @xsot!источник
a[99]
Я люблю автовификацию Perl! Ой, подождите ...a[99],c,m;main(d){for(;~c;m|=a[d=c]+=c!=d)c=getchar();putchar(48+1/m);}
!--m
на1/m
. Оa[d=c]+=c!=d
, я попробовал это с gcc, и он не работал на моем компьютере из-за порядка оценки. Мы должны найти компилятор, который будет играть вместе.a[99],c,m;main(d){for(;~c;m|=c^d&&a[d=c]++)c=getchar();putchar(48+!m);}
Haskell, 37 байт
Использует тот же подход, что и ответ MATL Луиса Мендо : создает вектор для каждой записи, индексы которого равны ему, и проверяет, что результат отсортирован в порядке убывания.
(<$>l).(==)<$>l
это более короткая версия[map(==a)l|a<-l]
. Функция ,(<$>l).(==)
которая принимаетa
кmap(==a)l
отображается наl
.scanl1 min
принимает кумулятивные наименьшие элементыl
, которые равны оригиналу, только еслиl
обратная сортировка.(==)=<<
проверяет, действительно ли список инвариантен для этой операции.Другая рекурсивная стратегия дала 40 байтов:
Это проверяет каждый суффикс, чтобы видеть, не появляется ли его первый элемент в оставшейся части, исключая случаи, когда первые два элемента равны как часть непрерывного блока.
источник
Ракетка, 53 байта
Тупая, простая версия.
Ungolfed:
Ракетка, 86 байт
Вот версия, реализующая комментарий @ xnor о более эффективных способах сделать это.
Ungolfed:
Ладно, это может на самом деле просто перенести вес вычислений с
sort
функции наregexp-replace
, но это было интересное решение. По сути, сначала он удаляет повторяющиеся символы ( см. Здесь ), а затем проверяет, отсортированы ли оставшиеся серии длины 1.источник
Perl 5, 20 байт
19, плюс 1
-pe
вместо-e
.источник
Wolfram Language (Mathematica) , 18 байт
Попробуйте онлайн!
Gather
собирает список в подсписки идентичных элементов иSplit
разбивает список на подсписки последовательных идентичных элементов. Они дают тот же результат, если и только если каждое значение появляется только в одном непрерывном блоке.источник
Выпуклый, 17 байт
Попробуйте онлайн!
источник
Japt , 9 байт
Попытайся
объяснение
источник
APL (Dyalog) , 17 байт
Попробуйте онлайн!
источник