एलिस , 49 बाइट्स * 2 = 98 144
/:G!4o3r8"1=5',0Grey9Z<@
\"b0=dnm 2'i%g<7R6~e.;o/
इसे ऑनलाइन आज़माएं!
व्याख्या
/...@
\.../
यह रैखिक कार्यक्रमों के लिए सामान्य रूपरेखा है जो पूरी तरह से ऑर्डिनल मोड में काम करते हैं। ज़िगज़ैग नियंत्रण प्रवाह को बंद करने पर, हमें यह मिलता है:
"G04d3m821i5g,7G6ee9;<:b!=onr "'=%'<0Rr~y.Zo@
मूल विचार उन पात्रों से बचना है जो लिप्यंतरण की मदद से दो बार से अधिक दोहराते हैं। हम जिस लिप्यंतरण को करने जा रहे हैं वह निम्नलिखित है:
input: "G04d3m821i5g,7G6ee9;<:b!"
from: "0123456789:;<"
to: "onr "
जिस तरह से ऐलिस में लिप्यंतरण का काम होता है, fromऔर toस्ट्रिंग्स को पहले उनकी लंबाई के LCM में दोहराया जाता है, हालांकि इस मामले में, सभी मामले fromस्ट्रिंग की लंबाई है , इसलिए हम प्राप्त करते हैं:
from: "0123456789:;<"
to: "onr onr onr o"
इस तरह, हमें चार प्रतिनिधित्व करने के लिए चार अक्षर मिलते हैं o, और तीन प्रत्येक के लिए n, rऔर स्थान। हम fromनिम्नानुसार रेंज विस्तार का उपयोग करके स्ट्रिंग उत्पन्न कर सकते हैं :
'< Push "<".
0 Append a zero.
R Reverse.
r Range expansion.
एकमात्र मुद्दा अब यह है कि हमें और स्ट्रिंग "दोनों के लिए चार की आवश्यकता होगी । उस से बचने के लिए, हम उन दोनों को एक ही तार में डालते हैं और इसे एक विभाजक के रूप में इस्तेमाल करते हैं।inputto=
"G04d3m821i5g,7G6ee9;<:b!=onr "
Push the string containing both parts.
'=% Split around "=".
बाकी बस:
~ Swap "from" and "to".
y Transliterate.
.Z Duplicate and interleave. This duplicates each character.
o Print.
@ Terminate the program.