var QUESTION_ID=71735,OVERRIDE_USER=31516;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/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>
long int
не достаточно, вам нужноsuper long int
.Ответы:
Джольф,
1816 байтовПопробуй это здесь! Я знал, что функция upperLower будет полезна когда-нибудь! Замените
ó
на
или просто используйте ссылку переводчика. Это закодировано в ISO 8859-7.источник
Perl,
3938 байт(1 байт добавлен для
-p
флага.)Правильный инструмент для работы ™.
Объяснение устарело после одной небольшой оптимизации (спасибо dev-null !), Которая делает его на один байт короче (но немного менее элегантным):
$"
переменная представляет, что нужноjoin
при интерполяции массива в строку, поэтому установка$"="|"
удаляет необходимостьjoin
,Демо-версия:
источник
$"="|"
вместо объединения?$"="|";s/@{[65..90,97..122]}/chr$&/ge
Javascript, 80 байт
Смотрите regex в действии здесь: https://regex101.com/r/iX8bJ2/1
Показать фрагмент кода
Просто ради любопытства я узнал здесь одну вещь:
Я не могу изменить ,
x=>String.fromCharCode(x)
чтобыString.fromCharCode
из - за ...источник
CJam, 22 байта
Попробуйте онлайн!
Задний план
Простая замена всех вхождений групп цифр на соответствующие буквы (в любом порядке, который мы можем выбрать) не будет соответствовать правилу слева направо.
Вместо этого мы можем сгенерировать все префиксы входной строки и попытаться сделать все возможные замены во время их генерации. Поскольку ни одна кодовая точка не содержится в другой кодовой точке, порядок этих попыток не важен.
Например:
Как это работает
источник
PHP,
1101021016867 байтДовольно сложная задача.
Это лучшее, что я мог придумать.Это совершенно новая версия.Запустите так:
ctype_alpha
вместоpreg_match
thx в manatwork0
к строке вместо проверки непустой строки: когда последний символ ввода равен 0, подстрока, которую я беру, будет иметь значение «0», что неверно, тогда как «00» верно, поэтому он не пропустит печать последних 0.strtr
после создания массива с парами преобразованияисточник
#[A-Z]#i
как текущее позволит с радостью преобразовать «92» в «\». Или попробуйтеctype_alpha()
вместоpreg_match()
. Пока что похоже на работу."0", which is falsy, whereas "00" is truthy
Хорошо, PHP.Python 3,
211189188 байтСохранено 23 байта путем замены \ n на; благодаря Деннису
Тест
источник
;
вместо разрывов строки, вы можете поместить весь цикл while в одну строку. Также первая строка может статьdef f(c,i=0,n=""):
.a=1;a=2 if 64<x<91 or 96<x<100 else a
-> иa=1+(64<x<91or 96<x<100)
т. д.Pyth,
2018 байтовТот же алгоритм, что и у @Dennis. Кодировать в Pyth на моем телефоне намного проще, чем в Jelly.
Спасибо @isaacg
Попробуй это здесь .
источник
05AB1E , 12 байтов
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
Альтернатива 12 байтов с использованием сокращения:
Попробуйте онлайн или проверьте все тестовые случаи или посмотрите пошаговое сокращение только с первыми 10 байтами .
источник