Diberi string yang hanya berisi huruf kecil, enkode string itu dengan abjad cipher.
Untuk menyandikan dengan abjad cipher (saya akan menggunakan contoh hello
):
- Pertama, konversi setiap huruf dalam string ke angka tergantung pada posisinya dalam alfabet (
a
=1
,b
=2
, dll.) Contoh:8
5
12
12
15
- Pad setiap angka hingga dua karakter dengan
0
s. Contoh:08
05
12
12
15
- Ikut. Contoh:
0805121215
Uji kasus
helloworld -> 08051212152315181204
codegolf -> 0315040507151206
alphabetcipher -> 0112160801020520030916080518
johncena -> 1015081403051401
Ingat, ini adalah kode-golf , jadi kode dengan jumlah byte paling sedikit menang.
Jawaban:
05AB1E ,
116 byteKode:
Penjelasan:
Pertama, kami mengonversi string ke nilai ASCII mereka.
codegolf
akan menjadi:Untuk sampai ke indeks alfabet, Anda kurangi
96
:Untuk mengisi dengan nol, tambahkan
100
ke setiap elemen dan hapus karakter pertama dari setiap int. Untuk contoh di atas,+100
akan menjadi:Dan menghapus karakter pertama masing-masing akan mengarah ke:
Kita dapat menggabungkan kedua langkah di atas (bagian
-96
dan+100
) bagian menjadi adil+4
. Untuk kode:Cobalah online!
sumber
¦
harus dilakukan lagi?Python 2, 42 byte
Uji di Ideone .
sumber
lambda s:''.join(`ord(x)+4`[1:]for x in s)
Pyth,
1110 byteCobalah! Go pertama saya di Pyth.
Setara python:
sumber
C,
5543 byteideone
sumber
printf("%02d",*c++-96);}
lebih pendek dan valid jika saya tidak salah.Python, 46 byte
Cukup mudah. Cobalah di repl.it!
sumber
Jelly ,
97 byteTryItOnline
Bagaimana?
sumber
O+4DḊ€FṾ€
hitungan yang sama, mungkin golfO+4Ṿ€Ḋ€
menyimpan 2 byte.Haskell,
fortyfour 3028 byteMenggunakan
+4
pendekatan dari jawaban Adnan menghemat 14 byte.Cobalah di Ideone. Pemakaian:
Dua byte mati berkat xnor . Versi lama:
sumber
Perl, 29 byte
28 byte kode +
-n
bendera.Jalankan dengan:
sumber
JavaScript (ES6),
5249 byteRekursi ternyata lebih pendek 3 byte dari
.replace
:parseInt(s,36)
sedikit lebih lama untuk setiap pendekatan, karena Anda harus mengubah4
ke91
:sumber
Japt, 10 byte
Mungkin tidak lebih pendek dari ini ...
Uji secara online!
Penjelasan
sumber
Java 7,60 byte
sumber
char[]
aString
.MATL,
1211 byte1 byte disimpan berkat @Luis
Cobalah secara Online
sumber
Hexagony , 33 byte
Cobalah secara Online!
Mm .. mendapat beberapa no-ops di Hexagon jadi saya masukkan tanggal hari ini.
Formulir yang Diperluas dengan tanggal digantikan oleh no-ops
10
dan memindahkan Memory Pointer ke suatu tempat ...$
melompati cermin dan,
membaca satu byte.<
ranting:-1
yang tidak positif) masuk ke@
dan mengakhiri program.95
(dikurangia
), lalu kami mencetakresult / 10
(pembagian bilangan bulat) danresult % 10
dan mengulang kembali.sumber
Vim, 60 penekanan tombol
Sebuah hampir solusi seluruhnya regex berbasis. Seperti biasa, menggunakan register eval membuatnya sangat panjang.
sumber
PHP, 58 Bytes
sumber
$argn
47 byte TIO .PowerShell v2 +, 44 byte
Mengambil input
$args[0]
, melemparkannya sebagaichar
-array, diumpankan ke dalam sebuah loop. Setiap iterasi, kita mengambil$_
modulo karakter saat ini32
, yang secara implisit dilemparkan sebagai nilai ASCII. Mudah ;-), ini berbaris begitua = 1, b = 2
, dll. Itu dimasukkan ke dalam-f
operator ormat, beroperasi pada string"{0:D2}"
, yang menentukan minimum dua digit (yaitu, ini menambahkan nol terkemuka jika diperlukan). Digit-digit itu dienkapsulasi dalam parens,-join
disatukan menjadi satu string, dan dibiarkan di atas pipa. Output melalui implisitWrite-Output
terjadi pada kesimpulan program.sumber
Perl, 24 byte
Termasuk +1 untuk
-p
Berikan masukan pada STDIN:
encode.pl
sumber
4+ord$&
bukannya5+ord$&
;-)exec rev
print
5 byte,<>
adalah 2 lebih, jadi saya bertanya-tanya apa yang 1 byte builtin untuk membalikkan saya belum pernah dengar!DASH , 27 byte
Contoh penggunaan:
Penjelasan
sumber
Batch,
256239237 byteMengambil input pada STDIN.
sumber
IBM PC DOS 8088 Assembly,
332827 byteBiner dirakit:
Belum dirakit:
Standalone PC DOS dapat dieksekusi. Input string dari baris perintah, output ke konsol.
I / O:
sumber
MATL , 11 byte
Cobalah online!
sumber
Ruby,
5346 byte->s{s.chars.map{|c|(c.ord-96).to_s.rjust(2,?0)}.join}
->s{s.chars.map{|c|(c.ord+4).to_s[1..2]}.join}
sumber
R,
7151 byteDisimpan 20 byte berkat Billywob. Membawa input dari stdin dan output ke stdout.
Contoh:
sumber
utf8toInt(scan(,"))-96
alih-alih seluruh pertandingan. Jangan berpikir ada cara yang lebih baik untuk menangani bantalan.formatC
sebelumnya tetapi itu ternyata membutuhkan satu byte lebih dari pendekatan saat ini.Sebenarnya 10 byte
Menggunakan algoritma yang rapi dalam jawaban Adab's 05AB1E . Saran bermain golf diterima. Cobalah online!
Tidak melakukanolf
sumber
Groovy, 51 Bytes
sumber
Labirin, 40 byte
sumber
Befunge-98, 19 byte
sumber
Groovy - 31 byte
Konversi Groovy dari solusi NumberKnot di java:
Contoh di sini menggunakan berbagai opsi:
http://ideone.com/vd0dTX
sumber
Pyke, 7 byte
Coba di sini!
sumber
C #, 54 byte
sumber