Membangun enkripsi rot13 golfed terlalu mudah karena huruf-hurufnya semuanya berurutan sama dalam ruang karakter ASCII. Mari kita coba mesin rot32 sebagai gantinya.
Tugas Anda adalah membangun fungsi yang mengambil string Base64 sebagai input dan mengembalikan string yang sama tetapi dengan setiap huruf diputar 32 simbol dari aslinya (pada intinya, dengan bit pertama dibalik).
String pengkodean base64 yang digunakan untuk masalah ini adalah 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/
dengan karakter padding dari =
. Ini untuk mencegah solusi yang seharusnya menggunakan atau mengimpor pustaka Base64 bawaan tempat string biasanya dimulai dengan A
alih - alih 0
.
Example inputs and outputs:
> rot32("THE+QUICK+BROWN+FOX+JUMPS+OVER+THE+LAZY+DOG=")
nb8ukoc6eu5liqhu9irudogjmuip8lunb8uf4tsu7ia=
> rot32("NB8UKOC6EU5LIQHU9IRUDOGJMUIP8LUNB8UF4TSU7IA=")
h5Eoei6C8oBfckboFclo7iadgocjEfoh5Eo9AnmoDc4=
> rot32("Daisy++daisy++give+me+your+answer+true/I+/+m+half+crazy++all+for+the+love+of+you")
7GOY2uuJGOY2uuMO/KuSKu2U+XuGTY0KXuZX+KvcuvuSuNGRLuIXG32uuGRRuLUXuZNKuRU/KuULu2U+
Program terpendek untuk melakukannya dalam bahasa apa pun menang.
Jawaban:
CJam, 24 byte
Cobalah online.
Bagaimana itu bekerja
sumber
Bash / Unix shell, 29
Input dari STDIN, output pada STDOUT.
sumber
Perl, 41
Hanya transliterasi sederhana . Dibaca dari STDIN, output ke STDOUT:
Cobalah di sini.
sumber
-p
dan-e
untuk menyingkirkan$_=<>;
dan;print
.CJam,
45 41 38 29 2726 byteMembaca string yang akan dienkripsi dari STDIN
Cara kerjanya :
Cobalah online di sini
sumber
Python, 178
Ini adalah implementasi referensi tempat-terakhir ungolfed, di Python yang dapat Anda gunakan untuk menguji implementasi Anda sendiri.
sumber
GolfScript (
4140 bytes)Demo online
Ada dua bagian untuk ini: terjemahannya adalah varian pada teknik terakhir yang disebutkan dalam tip saya
tr
di GolfScript , dan bagian lainnya adalah pembuatan string, yang menggunakan string0:a{A[
sebagai array nilai char dan lipatan untuk mengubahnya menjadi rentang karakter. Perhatikan penggunaan32/(*
untuk membangun string yang diterjemahkan dengan memasukkan 32 karakter pertama antara 32 karakter kedua dan karakter yang kami terjemahkan.sumber
python, 69
tes
sumber
LiveScript, 91
LiveScript, 50
Jika string diizinkan sebagai argumen kedua.
sumber
JavaScript 164
sumber