Tantangan sederhana terinspirasi oleh popularitas teks tak terlihat cetak saya sebelumnya dan mencetak tantangan teks nyata tak terlihat , dan tantangan string berbeda panjang yang sama .
Diberikan string yang hanya terdiri dari karakter yang dapat dicetak ( 0x20 to 0x7E
), cetak setiap karakter yang dapat dicetak yang tidak ada dalam string.
Memasukkan
String, atau array karakter, terdiri dari hanya karakter ASCII yang dapat dicetak
Keluaran
Setiap karakter ASCII yang dapat dicetak tidak ada dalam string input, dalam urutan apa pun.
Testcases
Input: "Hello, World!"
Output: ""#$%&'()*+-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVXYZ[\]^_`abcfghijkmnpqstuvwxyz{|}~"
========
Input: "Hi!"
Output: " "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmnopqrstuvwxyz{|}~"
========
Input: ""
Output: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
========
Input: " !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"
Output: ""
Mencetak gol
Ini adalah kode-golf sehingga byte paling sedikit di setiap bahasa menang
set( 'a', 'b', 'c' )
Jawaban:
GS2 , 2 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Perl 6 , 29 byte
Perhatikan bahwa hasilnya acak karena Set s tidak berurutan.
Menguji
Diperluas:
Ada juga versi ASCII
∖
(-)
, tetapi akan membutuhkan ruang sebelum itu agar tidak diuraikan sebagai panggilan subrutin.sumber
Python 3.5 , 39 byte
Cobalah online!
Mengubah input menjadi satu set, dan menghapusnya dari set yang berisi semua karakter ascii
sumber
Japt , 14 byte
Cobalah online!
Disimpan 4 byte berkat Shaggy dan obarakon
sumber
127
dengan#
untuk menyimpan byte dan hapusU
untuk menyimpan yang lain.¦
dan mengatur ulang argumen Anda untuk menghemat beberapa byte. Juga, 127 dapat disingkat TIOHaskell, 32 byte
Cobalah online!
Fungsi perpustakaan yang membosankan untuk perbedaan set:
Haskell, 31 byte
sumber
MATL , 5 byte
Cobalah online!
Terima kasih untuk Luis Mendo bermain golf dengan 8 byte!
Penjelasan:
Perbedaan set simetris akan memberikan setiap elemen yang ada di persis salah satu dari dua set input. (tetapi tidak keduanya) Ini akan selalu memberikan jawaban yang benar, karena set input akan selalu menjadi subset dari set kedua (semua ASCII yang dapat dicetak).
Versi asli:
Penjelasan:
sumber
Brachylog , 5 byte
Cobalah online!
Penjelasan
sumber
JavaScript (ES6), 74 byte
Saya yakin ada cara yang lebih singkat untuk melakukan ini!
Cobalah
sumber
Array(95)
termasuk yang hilang~
}
ketika saya menulis ini. Tetap sekarang, terima kasih.String.fromCharCode
adalah git, itu sebabnya! : D~
tidak mengubah apa pun kecuali bahwa itu ada dalam spesifikasi. Juga, bagian "Cobalah" perlu diperbarui.Pesta ,
47 4340 byteCobalah online!
Menghasilkan kisaran hexa, membalikkan hex dump untuk menghasilkan karakter yang ada di parameter pertama.
sumber
Oktaf,
2220 byteTerima kasih kepada @Luis Mendo yang menyimpan 2 byte.
Cobalah online!
Jawaban lain:
Cobalah online!
sumber
@(s)setxor(' ':'~',s)
menghemat 1 byte@(s)setxor(32:'~',s)
tampaknya bekerja juga --- dan komentar yang sama untuk itu :-)PHP, 42 Bytes
Input sebagai array
Keluaran sebagai string
Cobalah online!
PHP, 53 Bytes
Input sebagai string
Keluaran sebagai string
ganti
<?=join
denganprint_r
untuk output sebagai arrayCobalah online!
sumber
Step 1: automatic starting tag
baikphp -r
... tetapi misalnya dalam contoh ini tidak membayar karenaecho
lebih lama dari<?=
.CJam , 8 byte
Di mana
␡
karakter hapus literal.Cobalah online!
sumber
-
berfungsi bukan^
.Perl, 39 byte
Jalankan dengan
perl -pe
.sumber
echo 'Hello World!' | perl -pe 's!.*!"pack(c95,32..126)=~y/$_//dr"!ee'
. Ini bekerja untuk saya di Perl v5.14 dan v5.24.brainfuck , 120 byte
Cobalah online!
Terbungkus:
Dijelaskan:
sumber
Ohm , 3 byte
Cobalah online!
Catatan: Anda juga dapat memasukkan input sebagai string ( contoh ), tetapi gagal untuk case input kosong.
sumber
Ruby,
231817 byteMenggunakan fungsi lambda sesuai komentar @ sethrin.
Versi sebelumnya:
sumber
s
harus dibaca dari STDIN atau disediakan sebagai argumen fungsi? Tantangan juga menentukan bahwa input dapat diberikan sebagai array karakter. Mengubah ke lambda yang stabil dan menjatuhkanchars
memberikan solusi 16-byte.->(s){[*' '..?~]-s)}
stdin
terikat ke variabel global. Di Ruby$<
adalah jalan pintas untukstdin
tetapi lambdas cenderung lebih pendek. Konvensi input dan output ada di sini . Saya juga tidak melakukan ini banyak, jadi jika aturannya tidak seperti yang saya pikirkan, beri tahu saya.APL, 13 byte
Mudah:
sumber
R , 50 byte
mengembalikan fungsi anonim. Mengubah string input menjadi bilangan bulat, menghitung perbedaan yang ditetapkan antara rentang yang dapat dicetak dan nilai input, dan kemudian mengubahnya kembali menjadi string dan mengembalikannya.
Cobalah online!
sumber
PHP, 53 byte
Jalankan sebagai pipa dengan
-r
.sumber
C #,
7471 byteVersi lama dengan membuat kisaran untuk 74 byte:
sumber
05AB1E ,
54 byte-1 terima kasih kepada Emigna
Cobalah online!
sumber
V , 20 byte
Cobalah online!
Hexdump:
sumber
C (gcc) ,
7572706850 byteCobalah online!
sumber
||
untuk bekerja pada "standar" C??:
adalah ekstensi GNU. Ini bekerja juga dalam dentang dan tcc.Jelly , 8 byte
Benarkah, 8 byte? Tolong, katakan padaku aku melewatkan sesuatu!
Cobalah online!
Bagaimana?
kalau tidak
Karena tantangan ini, sebuah atom baru yang menghasilkan semua karakter ASCII yang dapat dicetak
ØṖ
,, telah diperkenalkan membuat karya berikut ini untuk 3 byte:sumber
Arang ,
1815108 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Sunting: Disimpan 3 byte dengan rentang karakter alih-alih bilangan bulat. Menyimpan 5 byte lebih lanjut ketika saya menemukan
γ
variabel tidak berdokumen yang menampung karakter ASCII yang dapat dicetak. Menyimpan 2 byte lebih lanjut ketika @ ASCII-satunya input tetap ditetapkan sebelumnya dalam mode verbose (jawabannya masih berlaku seperti itu, itu hanya link online coba yang tidak akan bekerja pada saat itu).sumber
Mathematica, 35 byte
Fungsi anonim. Mengambil daftar karakter sebagai input dan mengembalikan daftar karakter sebagai output.
sumber
Lua, 78 byte
sumber
shortC , 33 byte
Konversi yang dilakukan dalam program ini:
A
->int main(int argc, char **argv) {
O
->for(
@
->argv
P
->putchar
));}
Program yang dihasilkan terlihat seperti:
Cobalah online!
sumber
Pyth , 17 byte
Pendekatan naif.
Penjelasan:
Uji secara online!
sumber
Clojure, 60 atau 49 byte
Ini "berlaku" membunuh saya: / Oh, jika mengembalikan daftar baik-baik saja maka ini sedikit lebih pendek.
sumber