var QUESTION_ID=63256,OVERRIDE_USER=20569;function answersUrl(e){return"http://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"http://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>
true true false false
становитсяtrue true false false
илиtrue eslaf false eurt
?eurt
сталfalse
илиtrue
?eurt
->true
1 3 2 4 5
trufalse -> trueurt
?Ответы:
C # 6, 144 байта
Для сопоставления используется регулярное выражение
true|false
, и, если оно совпадает,true
оно будет заменено наeslaf
, в противном случае - наeurt
.m.Value[0]<'g'
это более короткий способ сказатьm.Value[0]=="false"
, потому что единственными возможными значениями дляm.Value
являются"true"
или"false"
, поэтому, если код символа первого символа меньше, чем код символа'g'
, это"false"
.Старая версия, 95 байт
У этого был баг, он не вернул правильный вывод для
falstrue
.источник
falstrue
.falstrue
фиксированного значения он больше не <100 байт ... :(TeaScript ,
362524 байтаTeaScript - это JavaScript для игры в гольф.
Изменения: Сохранено 11 байт благодаря @ Vɪʜᴀɴ. Исправлено для ввода
falstrue
и сохранен байт.Старая версия (неверно):
Объяснение:
источник
l
иi
вместоt
иf
, вы можете опустить.
s. f также предопределено,false
чтобы вы могли получить:xv¡g(l="eurt",i=f+¢)g(iv¡,lv¡)
xv¡g("eurt",f)g(f.T¡v¡,t)
(
после методов? Какreplace(/(\.[BcCdeE...])/g,"$1(")
или похоже после вставки периодов.falstrue
.Bash + GNU,
453873 байтаEdit: работает как с
trufalse
иfalstrue
Старая версия , 38 байт (сокращено, благодаря Digital Trauma):
источник
rev|sed s/eurt/false/g\;s/eslaf/true/g
falstrue
.trufalse
.JavaScript ES6, 59
Как анонимная функция.
Обратите внимание, что замена используется просто как сокращение для match (). Map (). Замененная строка отбрасывается, а выходная строка создается по частям в обратном направлении (поэтому нет необходимости переворачивать).
Попробуйте запустить приведенный ниже фрагмент в браузере, совместимом с EcmaScript 6.
источник
Пакет Windows,
184213 байтИсправлена ошибка,
falstrue -> falseslaf
иtrufalse -> trueurt
Вероятно, один из менее популярных языков:
источник
falstrue
.Haskell, 94 байта
Выполняет сопоставление с образцом для входной строки, ищет «false» или «true» и добавляет противоположное к результату применения функции к оставшейся части строки. Если true или false не найдены, он использует рекурсию для обратного преобразования строки таким же образом.
источник
f[]=[]
строку и вместо этого поставитьf x=x
внизу, чтобы сохранить байт.JavaScript ES6,
9593 байтаБезымянная функция. Добавьте
f=
к началу, чтобы использовать это. Спасибо Исмаэль! Также предполагается, что ввод не содержит вкладок.источник
.replace(/eurt/g,false).replace(/eslaf/g,true)
, так как они будут преобразованы в строку. Попробуйtrue + ''
(должен вернуться'true'
)false
с!1
иtrue
с!0
. Там на несколько байт короче[...x]
вместо x.split ''x=>[...x].reverse().join``[r='replace'](/eurt/g,!1)[r](/eslaf/g,!0)
. Я также изменил параметр соединения на пустую строку шаблона, чтобы разделить запятые массива.Pyth, 30 байт
Это переворачивает вход (
_z
), заменители"eurt"
для"false"
и"eslaf"
для"true"
. Замена производится с помощью:
.Попробуйте онлайн
источник
"true"
и"false"
как переменную:,=d"true"=k"false"::_z_dk_kd
и использовать обратное. Это сэкономит 3 байта.::_zJ"eurt"K"false"_K_J
составляет 23 байта.falstrue
.RS , 56 байт
Живая демоверсия и тестовые случаи.
источник
falstrue
.Юлия,
595546 байтовЭто создает безымянную функцию, которая принимает строку и возвращает строку. Чтобы назвать его, дайте ему имя, например
f=s->...
.Ввод обратный с помощью
reverse
. Мы сопоставляем регулярное выражение,eurt|eslaf
которое соответствуетtrue
или вfalse
обратном направлении. К совпадению мы применяем функцию, которая возвращает,true
если совпадение лексикографически меньше, чемet
(то естьeslaf
), иfalse
противном случае. Логические литералы преобразуются в строку в выходных данных.Сохранено 9 байт и исправлена проблема благодаря Glen O!
источник
falstrue
.s->replace(reverse(s),r"eurt|eslaf",i->i<"et")
- использует регулярное выражение вместо того, чтобы делать это дважды, и функцию для замены, которая оценивает, былоtrue
ли это «elsaf», иfalse
если это было «eurt». 46 байтов.falstrue
проблему.Javascript, 135 байт
Тест:
=>
«ложь есть противоположность истине»<=
"Истинно, Этосоппо Эхт Си Фальш"Спасибо ProgramFOX и edc65 за указание на ошибку!
источник
s
существует. Кроме того, ваш код не работаетfalstrue
: он должен выводитьfalseslaf
, а неtrueslaf
. Вы хотите исправить эти проблемы? Благодарность! :)f=s=>s.split(""). ...
.Java,
1629892 байтаСпасибо (и извините! ~) @DanielM. за то, что рассказал мне о StringBuffer и о том, что мы можем использовать функции!
Потому что, вы знаете, Java.
Возвращает правильную, перевернутую строку.
Безголовая версия:
По сути, я заменяю все экземпляры «false» обратным «true», затем переворачиваю всю строку, а затем заменяю теперь обратные версии «true» (а не те, которые я только что заменил) на «false». Очень просто.
источник
return
подразумевается при работе с однострочными лямбдамиMathematica, 64 байта
источник
Python 3,
68100 байтЯ все еще играю в гольф, но это исправлено на ошибку, так
falstrue -> falselsaf
иtrufalse -> trueurt
Довольно просто:
источник
falstrue
.print(input()[::-1].replace("eslaf","true").replace("eurt","false"))
)trufalse
становитсяtrufalse
, в то время как это должно бытьtrueurt
Japt, 26 байт
Примечание. Это может быть недействительным, так как требует исправления ошибок, внесенных после публикации этого запроса.
Попробуйте это в онлайн-переводчике ! (Функция стрелки требует ES6-совместимого браузера, такого как Firefox.)
Как это работает
Вот версия, которая работала до исправления ошибки: (38 байт)
источник
Гема, 43
( Gema - неясный макроязык.)
источник
Пиф,
28226 байтов благодаря Якубе
Работает правильно для
falstrue
, как показано в наборе ниже.Тестирование
источник
Haskell, 102 байта
Замена «true» на «false» и наоборот довольно длительна при сопоставлении с образцом, но, по крайней мере, правильно работает с «falstrue» и тому подобным. И, кроме того, я подозреваю, что правильная версия на основе регулярных выражений будет немного длиннее.
источник
Python 3 -
10892 байтаИспользует регулярное выражение для соответствия «истина» или «ложь» и использует лямбду для обработки совпадений и выбора того, что использовать в качестве строки замены. Использование repr возвращает строковое представление (len (match)> 4), которое выдает «True», когда «false» сопоставляется, и наоборот (и использует .lower (), потому что repr (bool) дает заглавную строку) для получения обратного совпадения и завершить, отменив замену, а затем обработав ввод, используя [:: - 1]
Удалось уменьшить длину на 16 байт из предложений TFelds.
Изменить: Python вернулся перед Java, нет необходимости для тревоги.
источник
[::-1]
)print(re.compile("eslaf|eurt").sub(lambda m:repr(m.group(0)!="eurt").lower(),input()[::-1]))
print(re.sub("eslaf|eurt",lambda m:repr(m.group(0)!="eurt").lower(),input()[::-1]))
Изменитьm.group(0)!="eurt"
наlen(m.group(0))>4
(еще на 1)𝔼𝕊𝕄𝕚𝕟, 40 символов / 65 байт
Try it here (Firefox only).
Спасибо @feersum за указание на ошибку!
21 символ / 43 байта, неконкурентный
Try it here (Firefox only).
источник
falstrue
.Пролог, 225 байт
Попробуйте это онлайн здесь.
Запустите запрос следующим образом:
источник
Рубин, 55 байт
Тест:
источник
Perl 5, 68 байт
67 плюс 1
-E
вместо-e
источник
OpenSCAD, 178 байт
(Обратите внимание, что здесь используется библиотека String Theory , так как OpenSCAD не имеет стандартной библиотеки. Кроме того, это функция, потому что единственный допустимый ввод - это жесткое ее кодирование.
источник
C #, 260 байт
источник
PHP, 60 байт
Простой, сначала переворачивает строку, а затем заменяет перевернутые версии их соответствующими перестановками.
«falstrue» становится «eurtslaf» становится «falseslaf».
источник
Perl 5,10, 54 байта
Обратный, затем заменить. Другой способ сделать это, кроме хеш-таблицы, используемой для другого ответа Perl, который в итоге оказывается короче!
Попробуйте онлайн.
источник
Pyth - 18 байт
Можно играть в гольф намного больше.
Тестовый пакет .
источник
falstrue
.