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
tidak cukup, kamu perlusuper long int
.Jawaban:
Jolf,
1816 byteCoba di sini! Saya tahu bahwa fungsi upperLower akan berguna suatu hari nanti! Ganti
ó
dengan
, atau cukup gunakan tautan juru bahasa. Ini dikodekan dalam ISO 8859-7.sumber
Perl,
3938 byte(1 byte ditambahkan untuk
-p
bendera.)Alat yang Tepat untuk Job ™.
Penjelasannya sudah usang setelah satu optimasi kecil (terima kasih dev-null !) Yang membuatnya menjadi lebih pendek satu byte (tetapi sedikit kurang elegan):
$"
variabel mewakili apa yang harusjoin
dihidupkan ketika menginterpolasi array ke dalam string, sehingga pengaturan$"="|"
menghilangkan kebutuhan untukjoin
.Demo:
sumber
$"="|"
daripada bergabung?$"="|";s/@{[65..90,97..122]}/chr$&/ge
Javascript, 80 byte
Lihat regex sedang beraksi di sini: https://regex101.com/r/iX8bJ2/1
Tampilkan cuplikan kode
Hanya untuk rasa ingin tahu, satu hal yang saya pelajari di sini:
Saya tidak dapat mengubah
x=>String.fromCharCode(x)
keString.fromCharCode
karena ...sumber
CJam, 22 byte
Cobalah online!
Latar Belakang
Cukup mengganti semua kemunculan kelompok digit dengan huruf yang sesuai (dalam urutan apa pun yang kita pilih) akan gagal mematuhi aturan kiri-ke-kanan.
Sebagai gantinya, kami dapat membuat semua awalan string input, dan berupaya membuat semua pergantian yang mungkin saat kami menghasilkannya. Karena tidak ada titik kode yang terkandung dalam titik kode lain, urutan upaya ini tidak penting.
Sebagai contoh:
Bagaimana itu bekerja
sumber
PHP,
1101021016867 byteTantangan yang cukup sulit.
Ini adalah yang terbaik yang bisa saya pikirkan.Ini adalah versi yang sama sekali baru.Jalankan seperti ini:
ctype_alpha
alih-alihpreg_match
, thx ke manatwork0
ke string alih-alih memeriksa string yang tidak kosong: ketika karakter terakhir dari input adalah 0, substring yang saya ambil adalah "0", yang palsu, sedangkan "00" benar, sehingga tidak akan melewatkan pencetakan 0 terakhir.strtr
setelah membangun array dengan pasangan konversisumber
#[A-Z]#i
seperti yang sekarang akan dengan senang hati mengizinkan "92" ditransformasikan menjadi "\". Atau cobactype_alpha()
sajapreg_match()
. Sejauh ini tampaknya berhasil."0", which is falsy, whereas "00" is truthy
Bagus, PHP.Python 3,
211189188 byteDisimpan 23 byte dengan mengganti \ n dengan; terimakasih untuk Dennis
Uji
sumber
;
alih-alih penghentian baris, Anda bisa meletakkan seluruh loop sementara pada satu baris. Juga, baris pertama bisa menjadidef 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)
etcPyth,
2018 byteAlgoritma yang sama dengan @Dennis. Jauh lebih mudah untuk kode dalam Pyth di ponsel saya daripada di Jelly.
Terima kasih @isaacg
Coba di sini .
sumber
05AB1E , 12 byte
Cobalah secara online atau verifikasi semua kasus uji .
Penjelasan:
Alternatif 12 byte menggunakan pengurangan-oleh:
Cobalah secara online atau verifikasi semua kasus uji atau lihat pengurangan langkah demi langkah hanya dengan 10 byte pertama .
sumber