var QUESTION_ID=68504,OVERRIDE_USER=40695;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>
Ответы:
Pyth, 8 байт
@xnor предложил этот более простой подход к ответу Pyth @ FryAmTheEggman, затем я перевел его на Pyth.
При этом используется удобное поведение
X
(translate), когда дано только два аргумента: оно переводится из второго аргумента в обратный второй аргумент. Мы делаем это сначала с помощью строчного алфавита (G
), а затем с прописной буквыG
.источник
C 59 байтов
Извините за воспитывающим C снова, но я был немного разочарован , чтобы видеть только C функции здесь. У меня сложилось впечатление, что OP искала полезный продукт.
Скомпилирован на Ubuntu 14.04 с простым:
Получившийся исполняемый файл читает любое количество строк из стандартного ввода и записывает результат в стандартный вывод.
Спасибо многим другим постерам за трюк с XOR.
источник
CJam, 17 байт
Я хотел помочь GamrCorps сыграть в его решение CJam, но результат оказался настолько разным, что я решил сделать отдельный ответ.
Попробуйте онлайн.
объяснение
источник
JavaScript (ES6),
6967 байтИспользует ту же стратегию, что и мой ответ Япта :
Прокляни свои невероятно длинные имена, JS ...
источник
document.getElementById
document.getElementsByClassName
или, на Firefox и Chrome,document.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
Сетчатка ,
171413 байтКод:
Объяснение:
Это делает некоторые магические вещи и завершает задачу.
Попробуй это здесь .
источник
\
. Не повезло, что я еще не удосужился добавить классы символов для букв и обратные классы символов.\T`lL`RlRL
.Пиф,
109Спасибо Jakube за сохранение байта с новой функцией
;
!Тестирование
Быстрое объяснение: уменьшить , начиная с ввода над числами 0 и 1. Операция должна быть выполнена в переводе алфавита в нижнем регистре либо
r...0
илиr...1
которые являются нижние и верхние функции от питона, соответственно, примененные к нему, а затем наоборот.источник
uXGr;H)2z
X
с алфавитом, а затем с заглавной буквы?XXzG)rG1
? Это похоже на работу.Юлия,
746147 байтЭто лямбда-функция, которая принимает строку и возвращает строку. Чтобы вызвать его, присвойте его переменной.
Мы сопоставляем каждую букву с помощью регулярного выражения и заменяем каждую букву символом ASCII, соответствующим 31 XOR коду ASCII для буквы, минус 4.
источник
$
так что вы можете обновить его до⊻
. Не знал, что вы можете использовать функцию вreplace
.C
150129 байтЭта функция просто конвертирует char в int и добавляет соответствующее смещение к int перед печатью. Я знаю, что это не самое короткое, но я не видел реализацию C.
Пример использования
ОБНОВЛЕНИЕ: сокращено имя переменной.
источник
temp
) ровно один символ.i,t;r(char*s){for(;i<strlen(s);i++){t=s[i]+25;t=t<116?180-t:244-t;isalpha(s[i])?putchar(t):putchar(s[i]);}}
Japt,
2322 байтаПопробуйте онлайн!
Как это устроено
источник
С, 64
Пустая функция, которая изменяет строку на месте.
Тест: идеон
источник
c;t(char*p){for(;c=*p;)*p++=c>64&c<91|c>96&c<123?(c^31)-4:c;}
R
69 69байтСпасибо @Giuseppe за сокращение лишних байтов:
Предыдущая версия:
Это анонимная функция. Использование:
источник
intToUtf8(c(122:97,90:65))
вместоraw
конверсий, и вы можете избавиться от этогоcat
. Я делаю это немного привычкой приходить в гольф на ваши ответы от 1 года ...Серьезно, 31 байт (не конкурирующий)
Шестнадцатеричный дамп:
Попробуйте онлайн
Обосн:
Я только что понял, что в спецификации не говорится о дополнительных пробелах, но нет способа подавить завершающие символы новой строки в выходных данных серьезно, поэтому серьезного решения нет.
источник
ESACREPPUesacrewol
значит?Рубин, 40 байт
Новое решение: украл эту магию из некоторых других постов здесь:
Рубин,
5546 байт9 байтов за счет благодаря @manatwork
тестовый забег:
источник
Джольф, 15 байт
Тестовый набор , или попробуйте его самостоятельно
источник
𝔼𝕊𝕄𝕚𝕟 2, 12 символов / 26 байтов (неконкурентные)
Try it here (Firefox only).
Добавлена функция транслитерации после публикации заявки.
объяснение
источник
CJam, 21 байт
Не оптимальное решение ... пока ... Попробуйте онлайн
Трудно объяснить без группировки вещей, поэтому здесь есть общее объяснение: получает ввод, толкает заглавные буквы алфавита дважды и строчные буквы дважды, вращает их вокруг, объединяет заглавные и строчные буквы, переворачивает одну и использует транслитерацию (аналогично ответу Retina).
источник
С (функция), 50
Это основано на всех трех предыдущих ответах C, так что отдавайте должное @Ruud, @Danwakeem и @ edc65.
Эта функция изменяет массив символов на месте.
Насколько я понимаю, записи функций разрешены, если они явно не запрещены в этом вопросе.
Попробуйте онлайн.
источник
PostgreSQL,
118125 байтSqlFiddleDemo
Выход:
Входные данные:
SELECT text'...'s
РЕДАКТИРОВАТЬ:
Введите как таблицу:
SqlFiddleDemo
Выход:
источник
Python 3,
195169168166 байтСпасибо @TrangOul за -2 байта!
Как я не видел, что я мог сыграть в гольф раньше?
Сорта
Попробуйте это на Ideone!
источник
[]
изjoin
.generator object <genexpr> at...
, но я проверю егоstr
значения] может быть передано вjoin()
функцию.Python, 61 байт
Анонимная функция. На буквах выполняет операцию реверса над битовым представлением, добавляя 4, затем переворачивая последние пять битов, аналогично ответу Javascript от ETHproductions .
источник
Haskell,
119104 байтаСохранено 15 байтов благодаря @nimi.
Использование:
объяснение
Я новичок в Haskell ... в функциональном программировании ... и на сайте, и я знаю, что есть (много) лучших ответов на этот вопрос, но терпите меня.
источник
let
. Начните прямо сc=fromEnum
. Используйте(155-c x)
и(219-c x)
. в)True
может быть заменен на1<2
. - Код не загружается для меня с ошибкой «переменная неоднозначного типа» для функцийc
иs
(ghci 7.10.2), но это можно легко исправить с помощьюf[]=""
вместоf[]=[]
.Perl 6 , 28 байт
Использование:
источник
Warning: Use of "ord" without parentheses is ambiguous at (eval 8)[/System/Library/Perl/5.18/perl5db.pl:732] line 2.
я ничего не знаю о Perl, так что я делаю что-то не так? Как бы я это запустил?m: my &swap = {S:g/\w/{chr $/.ord+4+^31}/}; say swap ('a'..'z').join
Java, 136 байт
Пример использования:
Вероятно, худший обычно используемый язык с точки зрения размера байта.
источник
void x(String i){for(Character c:i.toCharArray())System.out.print(c.isLetter(c)?(char)(c<91?90-(c-65):122-(c-97)):c);}
void y(String i){for(int c:i.getBytes())System.out.print((char)(c>65&c<91|c>96&c<123?c<91?90-(c-65):122-(c-97):c));}
( 116 байт )90-(c-65)
в-c+65+90
и122-(c-97)
в-c+97+122
, что экономит байт каждый.Unix shell + tr + printf, 35 байт
Вот вам, канонический ответ в тр. Я думал , как бы вопрос транслитерации алфавита идти без канонического ответа на тр ansliterate алфавита?
Сам по себе tr даже не делает "Hello, World!" и как таковой не является языком программирования, поэтому
я отметил ответ как неконкурентный[1] .[1]: Edit: на самом деле, оболочка Unix - это язык, а tr - стандартная библиотека . Спасибо Downgoat и Digital Trauma за помощь в определении этого.
источник
tr
в coreutils) - как стандартную библиотеку. Смотрите бесчисленное множество моих ответов ;-)tr: range-endpoints of 'Z-A' are in reverse collating sequence order
. Я думаю, что вы должны сделать что-то вродеtr A-Za-z $(printf %s {Z..A} {z..a})
(и заменить$( )
обратными метками)printf
- в конце концов, она определена Posix . Также это встроенный в Bash, который довольно распространен в наши дни. Независимо от того, что-то, предварительно установленное в каждой системе, не является обязательным условием для code-golf - не у всех также есть CJam в их системе ;-)}
и{
обязателен - иначе расширение становится чем-то вродеZz Zy Zx ... Za Yz ... Aa
05AB1E , 5 байтов [не конкурирует]
Использует набор символов CP-1252 .
Попробуйте онлайн!
Объяснение:
источник
MATL , 21
28байтИспользует версию 6.0.0 , которая является более ранней, чем эта проблема. Код работает в Октаве.
пример
объяснение
Старый подход, 28 байтов
источник
MATLAB, 61 байт
Я попытался
f=@ismember
сделать диапазонa=65:90
переменным и сделать32+a
во второмismember
вызове. Все это сокращает код, но приводит к созданию программы и, следовательно, требует и того,disp
и другогоinput
.Это дает:
источник
Брахилог , 66 байт
Отсутствие встроенных модулей действительно вредит, поэтому нам приходится прибегать к старым добрым вычислениям ASCII-кодов.
Предикат
brachylog_main
ожидает строку кодов символов в качестве входных данных и не выводит их, напримерbrachylog_main(`Hello, World!`,_).
объяснение
источник
Perl 6,
4039 байтПоскольку все остальные выполняют анонимные функции:
(Спасибо @ b2gills за подсказку)
Использует тот же бит переворачивания вуду, что и некоторые другие посты. Я не был уверен, стоит ли включать объявление переменной / функции в число байтов, поэтому я сделал это на всякий случай. Без него это решение составляет всего 34 байта.
Использование:
источник
*.trans(…)
чтобы сделать его короче.Python 3,
164159 байтисточник