var QUESTION_ID=90349,OVERRIDE_USER=58717;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>
a
juga cukup baik?A
untuk alasan yang jelas.U
untuk Unicode escape string (\u0041
isA
),X
untuk hex escape string (\x41
),+
untuk Unicode ordinals (U+0041
),&
untuk entitas HTML,#
karena aku sebenarnya tidak tahu,65
adalah ordinal desimalA
,41
adalah hex ordinalA
,97
adalah ordinal desimal daria
, dan0
untuk beberapa alasan sebelumnya.Jawaban:
Pluso, 1 byte
Halaman Pluso Esolangs .
Pluso berisi akumulator tunggal, yang dimulai dengan nilai 1. Ia menggunakan dua perintah, p yang menambah akumulator (mod 27), dan o yang mencetak nilai saat ini sebagai karakter ASCII huruf besar, AZ atau spasi (di mana 1-26 mewakili AZ masing-masing, dan 0 mewakili spasi).
Sebagai akumulator dimulai pada 1, perintah o tanpa terlebih dahulu p akan menampilkan A .
sumber
Python 2, 14 byte
Ekspresi
3<3
memberikan BooleanFalse
, dan backticks memberikan representasi stringnya'False'
. Dari sini, tetap mengekstraksi surat itua
. Python diindeks 0, jadia
pada indeks1
, yang merupakan karakter yang dilarang. Itu bisa dinyatakan sebagai3-2
, tetapi ada cara yang lebih pendek. Python memungkinkan pengindeksan dari belakang, dengan indeks-1
untuk entri terakhir,-2
untuk yang sebelumnya, dan seterusnya. Kami ingin indeks-4
, tetapi4
juga nomor yang dilarang. Tapi, kita bisa mengekspresikannya~3
menggunakan bit-komplemen~
, yang memberi-n-1
untuk~n
.sumber
[2]
bukan[~3]
?[1]
.1
dan4
nomor 'dilarang' ??Pyth, 2 byte
Uji di Kompiler Pyth .
Bagaimana itu bekerja
sumber
PHP,
96 byteUntuk 9 byte: Terinspirasi oleh jawaban @Ton Hospel . Plus, itu memiliki manfaat tambahan terlihat sedikit seperti Kaomoji. :-)
Versi 6 byte yang ditingkatkan:
dimana ¾ memiliki kode hex 0xBE (penting untuk menyimpan file dalam pengodean Latin-1 , bukan UTF-8!).
sumber
f^E^b
.^_^
A
. Mencetak=A
.=
karakter.05AB1E,
32 bytePenjelasan
Cobalah online
Disimpan 1 byte berkat Adnan
sumber
Th
untuk dua byte :)brainfuck, 16 byte
Ini didasarkan pada algoritma brainfuck Esolang untuk 159 .
Cobalah online!
sumber
+
. (cara terpendek untuk mencetak A adalah>+[+[<]>>+<+]>.
), tetapi berkat daftar konstanta pada Esolang, tidak terlalu sulit.JavaScript (ES6),
171614 byteDisimpan dua byte berkat Neil!
Mengembalikan karakter kedua
NaN
, yaitua
.Ini adalah yang terpendek yang bisa saya buat
A
,4342 byte:Siapa bilang menjadi obfuscator tidak membantu dengan kode golf? Bukan saya!
Penjelasan
Yang pertama, secara mendalam.
-_
adalah NaN, karena_
tidak terdefinisi. Untuk mendapatkan ini sebagai string, kita perlu salah satu dari yang berikut ini:Yang terakhir terlalu panjang, dan yang pertama digunakan
+
. Jadi kami menggunakan yang kedua. Sekarang,a
ada di indeks1
. Ini tidak ada gunanya, karena1
dilarang. Namun, sebagai string template, kita dapat menempatkan spasi di sana untuk membuatnya di indeks2
, sehingga meninggalkan kita` ${-_}`
.Yang kedua, secara mendalam.
Yang ini doozy.
Ini adalah karakter ke-9 dari string templat di dalam,
-~8
sama dengan 9. Dalam hal ini, string templat ini hanya untuk stringifikasi. Ini adalah persamaan di dalam yang sedang dirubah, di antaranya${...}
:Mari kita perluas sedikit ini:
Ini mendapatkan properti dari array kosong. Properti ini, tentu saja, string templat, tetapi memiliki beberapa teks di sekitarnya. Ini kira-kira setara dengan:
`constr${
${!""}
[2]}ctor`Bagian dalam pada gilirannya setara dengan:
!_
adalahtrue
(karena_
adalahundefined
, dan!undefined === true
), dan stringified adalah"true"
. Kami mendapatkan karakter kedua itu,u
; kita harus mendapatkannya dengan cara ini agar tidak secara eksplisit memasukkanu
kode kita.Jadi, bit bagian dalam ini setara dengan:
Jadi kita mendapatkan konstruktor dari Array,
Array
fungsinya. Saya tidak bisa meletakkan ini secara eksplisit karena mengandung yang terlarangA
. Sekarang, meringkasArray
fungsi menghasilkan"function Array() { [native code] }"
.Kembali ke kode asli:
Ini sama dengan, seperti yang telah kita lihat:
Setara dengan:
Akhirnya setara dengan:
sumber
a
adalah karakter terlarang, dan ada ditoUpperCase
.Hexagony , 4 byte
Ayyy lmao? Cukup golf untuk bahasa non-golf haha. Kode:
Cobalah online!
Bentuk yang lebih mudah dibaca:
Ini menempatkan nilai ASCII dari surat itu
B
, yaitu 66, di tepi memori saat ini. Ini mengurangkannya dengan satu menggunakan(
dan mencetaknya dengan;
. Setelah itu, program diakhiri dengan menggunakan@
.Gambar jalur wajib:
sumber
Jelly , 3 byte
Cobalah online!
Bagaimana itu bekerja
Jelly, 4 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Sebenarnya , 2 byte
Cobalah online!
Penjelasan:
sumber
CJam, 3 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Bubblegum , 1 byte
atau
Semua orang sepertinya lupa bahwa itu ada ...
sumber
Perl,
98 bytexor masih diizinkan, tetapi
say
tidak. Jadi untuk 9 byte:Namun menggunakan output ke STDERR memberikan 8 byte:
Ganti
\x9e
dan\xf5
menurut versi literalnya. Atau buat file yang dapat dieksekusi menggunakan:sumber
say
(berisi a) untuk mencetak selama konstruksi argumen tidak menggunakan karakter terlarang?print "No using the letter with code point 65";
.> <> , 6 byte
ini membuat serangkaian karakter, memantul dan membuatnya lagi secara terbalik, membalik 2 item tumpukan teratas dan mengurangi: '|' (124) minus ';' (59) adalah 'A' (65)
Cobalah online
sumber
'$-o;|
yang hampir sama tetapi tanpa memantul. (|;o-$'
juga berfungsi.)Ruby,
1512 bytesumber
$><<
menjadip
, menjadikanp to_s[-3]
p
memanggilinspect
argumennya, sehingga output akan dikutip, yang akan mendiskualifikasi itu.Java, 55 byte
Karena kode harus mencetaknya, diperlukan salah satu dari dua penulis bawaan.
System.out
adalah, well, out, karena mengandungu
.System.err
bekerja, namun.Rintangan selanjutnya adalah penanganan Java untuk
char
danint
. Karena itu tidak diizinkan untuk dilemparkan kechar
karena mengandunga
, dan karena'c' - 2
dipromosikanint
, mekanisme lain diperlukan.System.err
adalahPrintWriter
, yang memilikiwrite(char)
metode tetapi tidakwrite(int)
. Menempatkan'c' - 2
di sana memaksanyachar
tanpa gips.Akhirnya, setiap kali saya menjalankan program buffer
System.err
tidak akan menyiram seperti yang seharusnya, dan program tidak mencetak apa pun. Jadi saya harus menyiramnya secara manual. Namun,System.err.flush()
tidak diperbolehkan, jadi saya meneleponprintln()
yang secara implisit menyiram aliran yang mendasarinya.sumber
MATL, 5 byte
Cobalah secara Online
Penjelasan
Jawaban asli saya adalah pendekatan lurus ke depan menggunakan literal
lY2
yang telah ditentukan yang menghasilkan'A'...'Z'
dan kemudian memilih elemen pertama'A'
,.sumber
Javascript,
18 byte16 byte12 byte11 byteBerdasarkan dasar-dasar jsfuck yang dimodifikasi (harus mencari cara untuk mengganti
+
dengan-
).Tidak disatukan?
Yah, setidaknya versi dengan komentar (perhatikan bahwa versi ini mungkin tidak akan berjalan):
Solusi lama:
sumber
3
diperbolehkan sehingga diganti semuanya dengan membosankan tua3-2
untuk mendapatkan1
Vim,
16 13 1110 penekanan tombolTerima kasih kepada H Walters karena menyimpan dua kunci
Terima kasih kepada DJMcMayhem karena telah menyelamatkan yang lain!
sumber
:h<cr>
, coba:h%<cr>
. Itu satu karakter tambahan, tetapi Anda mendapatkan bantuan untuk%
, dengan kursor tepat di atas a. Jadi dari sini Anda bisa menggantinya33ll
denganj
.ZZ
alih-alih:q<cr>
menyimpan yang lain.R,
2712 byteEDIT: Versi baru, dari ide bagus dari @Jarko Dubbeldam
Tantangan yang cukup lucu!
Pada dasarnya, ini mengambil
26th
elemen dari vektor terbalik yang berisi huruf besar (LETTERS
, yang merupakan vektor bawaan R )Versi sebelumnya s (jumlah byte yang sama) :
sumber
LETTERS[T*T]
.T
mengevaluasi1
ketika melakukan operasi numerik.> <> ,
74 byteDisimpan 3 byte berkat Teal pelican
Cobalah online!
Penjelasan
sumber
"B"1-o;
Vim, 2 penekanan tombol
vim -u NONE
kemudian jalankan yang berikut (-u NONE
matikan kustomisasi)Ketika vim dijalankan dalam mode yang kompatibel, tombol panah tidak dapat diartikan dengan benar.
<up>
ditafsirkan<esc>OA
yang meninggalkan yang berikut ini dalam mode sisipkan. Yang akan pergi (dengan beberapa baris baru)i
mulai memasukkan mode.<up>
keluar dari mode insert, buka baris di atas dan masukkan A ke bufferContoh orang menghadapi ini di alam liar. https://stackoverflow.com/questions/6987317/while-moving-the-cursor-across-a-vim-process-open-in-a-tmux-session-every-now-a/6988748#6988748
sumber
Brainfuck,
19219 byteTerima kasih kepada @NinjaBearMonkey untuk membantu saya menghemat hella byte
-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----------------------------------------.Saya tidak pandai Brainfuck jadi saya yakin ada solusi yang lebih pendek, tetapi ia bekerja dengan mengurangi di bawah 0, menggulirkan byte, dan terus berjalan sampai turun ke 'A', lalu dicetak.sumber
JavaScript (ES6), 21 byte
Saya awalnya mencoba mengkonversi
false
ke string untuk melakukan ini, tetapi saya butuh 23 byte pada saat itu. Sejak itu saya menemukan cara yang lebih pendek, yaitu 14 byte:Saya tidak berpikir Anda bisa mendapatkan huruf besar di
A
bawah aturan, karena Anda memerlukan salah satuString.fromCharCode
atau.toUpperCase()
keduanya mengandunga
.sumber
C, (19?) 24 byte
Terima kasih untuk Dennis:
sama panjang:
yang memungkinkan juga huruf kecil:
Ada solusi 19 byte sebagai fungsi memodifikasi parameternya, yang memiliki cacat:
Jika
c
dideklarasikanchar
,g
modifikasi keseluruhanint
sehingga menghancurkan tumpukan yang menyebabkan nilai-nilai lain dimodifikasi atau program dibatalkan dengan pesan kesalahan. Satu-satunya cara untuk menghindari adalah untuk menyatakanint c;
dimain
dan mencetak dengan"%c"
, tapi yang terasa seperti sebuah jalan.solusi yang lebih lama
Hanya fungsi, karena
main
dilarang.sumber
88-23
harus menyimpan beberapa byte.printf("%c",~'ɦ');
:, meskipun "A" akan memiliki tanda aksen yang ditambahkan hehɦ
adalah karakter 2-bytedc, 4 byte
UCHAR_MAX meluap menggulung tabel
enamtiga kali sebelum mendarat di 65.sumber
Lua, 36 byte
Yang satu ini butuh waktu sejak BANYAK fungsi Lua standar yang diambil dari aturan (semua
math
,string.char
,string.match
,pairs
, bahkannext
)Ini mengambil keuntungan dari fakta bahwa Lua memiliki global
_VERSION
yang biasanya dimulai dengan "Lua" (misalnya,Lua 5.1
atau serupa untuk versi lain), jadi kecuali ini dijalankan pada penerjemah non-mainstream, karakter ketiga akan menjadi 'a'The
{...}[3]
adalah untuk kelompok hasilfind
yang juga termasuk indeks di mana itu cocok, dan kemudian kembali item ketiga yang merupakan karakter cocok (yanga
)sumber
print(({type{}:find".(.)"})[3])
31 byteHaskell, 10 byte
Sebagai fungsi (atau lebih tepatnya pernyataan karena tidak ada input yang diperlukan)
lakukan triknya. Cobalah di Ideone. Program lengkap tidak mungkin karena ini perlu mengandung a
main
.sumber
A
. Fungsi Anda hanya mengembalikannya dan program tertaut menampilkannyaputChar
yang digunakanu
.print
dan / ataudisplay
.A
harus dicetak / ditampilkan dan tidak dikembalikan.Brachylog , 4 byte
Cobalah online!
Penjelasan
sumber
dc,
87 byte-1B terima kasih kepada Dennis
Menekan 88, menekan 23, mengurangi, meninggalkan 65. Mencetak bagian atas tumpukan (65) sebagai string ASCII, dapat menelusuri baris baru.
Sunting:
Ini adalah beberapa cara lain yang saya temukan. Ini pada dasarnya menjadi permainan "menghasilkan angka 65 dan 97 hanya menggunakan
[238B-F]
dan tanpa penambahan". Ironisnya, saya menemukan yang terpanjang paling menarik.sumber