आर , 88 86 बाइट्स
cat(intToUtf8(rbind(diffinv(matrix(c(66,-32,-31),25,5,T)[,1:3],,,t(c(32,65,97))),10)))
इसे ऑनलाइन आज़माएं!
आर स्ट्रिंग हेरफेर में भयानक है और हालांकि इसमें कुछ नीरस मैट्रिक्स बिल्डिन हैं, घुमाव एक और चीज है जो यह बहुत आसानी से नहीं करता है। मैं खुशी-खुशी किसी को भी इनाम दूंगा जो मुझे आर-गोल्फ में बाहर कर सकते हैं।
मेरे छोटे जवाब मिलने के बावजूद, मैं अभी भी 88 बाइट्स से छोटे दूसरे आर उत्तर के लिए 50 प्रतिनिधि इनाम दूंगा।
मुझे लगता है कि मैं अपने आप को इनाम अगर मैं कर सकता था, लेकिन यह "उबाऊ" जवाब की तुलना में कम पूरे दो बाइट्स है! मैं पुनर्चक्रण के लिए आर के पेन्चेंट का उपयोग करके रोटेशन से बचता हूं।
EDIT: user2390246 के जवाब ने मुझे पूरी तरह से परेशान कर दिया और मैं 100 अंक का इनाम दूंगा क्योंकि यह समाधान बहुत बेहतर है।
यहां आने के लिए, मैंने अपने ASCII कोड पॉइंट्स utf8ToInt
( diff
वांछितों को हटाते हुए) के साथ वांछित आउटपुट को डिकंस्ट्रक्ट किया , एक मैट्रिक्स बनाया, और उन पर कॉलम वाइज अंतर प्राप्त करते हुए भाग गया । वहाँ आवधिकता को ध्यान में रखते हुए, मैंने एक गोल्फ शैली में मैट्रिक्स का निर्माण करने के लिए सेट किया, diffinv
जो मूल को फिर से बनाने के लिए उपयोग करने की उम्मीद कर रहा था ।
आवधिकता के लिए धन्यवाद, हम diff
R मैट्रिक्स को R को एक गैर-एकाधिक लंबाई के साथ रीसायकल करने के लिए मजबूर कर सकते हैं , और उन स्तंभों को निकाल सकते हैं जिन्हें हम वास्तव में चाहते थे:
matrix(c(66,-32,-31),25,5,T)[,1:3]
फिर हम इस प्रक्रिया diffinv
को उल्टा करते हैं, कोड बिंदुओं को फिर से बनाने के लिए, 10
(newlines) की एक पंक्ति को नीचे की ओर जोड़ते हैं , ASCII के साथ फिर से जोड़ते हैं intToUtf8
, और cat
परिणाम।