Alice , 49 byte * 2 = 98 144
/:G!4o3r8"1=5',0Grey9Z<@
\"b0=dnm 2'i%g<7R6~e.;o/
Cobalah online!
Penjelasan
/...@
\.../
Ini adalah kerangka kerja biasa untuk program linier yang beroperasi sepenuhnya dalam mode Ordinal. Membuka kontrol aliran zigzag, kita mendapatkan:
"G04d3m821i5g,7G6ee9;<:b!=onr "'=%'<0Rr~y.Zo@
Ide dasarnya adalah untuk menghindari karakter yang diulang lebih dari dua kali dengan bantuan transliterasi. Transliterasi yang akan kami lakukan adalah sebagai berikut:
input: "G04d3m821i5g,7G6ee9;<:b!"
from: "0123456789:;<"
to: "onr "
Cara transliterasi bekerja di Alice adalah string from
dan to
pertama kali diulang ke LCM dari panjangnya, meskipun dalam kasus ini, semua hal adalah panjang from
string, jadi kita dapatkan:
from: "0123456789:;<"
to: "onr onr onr o"
Dengan cara ini, kita mendapatkan empat karakter berbeda untuk mewakili huruf o
s, dan tiga masing-masing untuk n
, r
dan ruang. Kami dapat menghasilkan from
string menggunakan ekspansi rentang sebagai berikut:
'< Push "<".
0 Append a zero.
R Reverse.
r Range expansion.
Satu-satunya masalah sekarang adalah bahwa kita akan membutuhkan empat "
untuk kedua input
dan to
string. Untuk menghindarinya, kita menempatkan keduanya menjadi satu string dan membaginya =
menjadi pemisah.
"G04d3m821i5g,7G6ee9;<:b!=onr "
Push the string containing both parts.
'=% Split around "=".
Sisanya hanya:
~ Swap "from" and "to".
y Transliterate.
.Z Duplicate and interleave. This duplicates each character.
o Print.
@ Terminate the program.