यह ppcg पर मेरी पहली चुनौती है!
इनपुट
एक स्ट्रिंग जिसमें दो अलग-अलग अस्की अक्षर होते हैं। उदाहरण के लिए
ABAABBAAAAAABBAAABAABBAABA
चुनौती
इन नियमों का पालन करते हुए कार्य इस स्ट्रिंग को डीकोड करना है:
- पहले दो पात्रों को छोड़ दें
- 8 वर्णों के समूहों में शेष स्ट्रिंग को विभाजित करें
- प्रत्येक समूह में, प्रत्येक वर्ण को प्रतिस्थापित करें
0
यदि वह वर्ण मूल स्ट्रिंग के पहले वर्ण के समान है, और1
अन्यथा - अब प्रत्येक समूह एक बाइट का प्रतिनिधित्व करता है। प्रत्येक समूह को बाइट चार कोड से वर्ण में परिवर्तित करें
- सभी पात्रों को सम्मिलित करें
उदाहरण
उपरोक्त स्ट्रिंग को डीकोड करते हैं।
AB AABBAAAA AABBAAAB AABBAABA
^^ ^ ^ ^
| | | |
| \---------|---------/
| |
Skip Convert to binary
ध्यान दें कि A
मूल स्ट्रिंग में पहला वर्ण B
है और दूसरा है। इसलिए, प्रत्येक के A
साथ 0
और प्रत्येक के B
साथ बदलें 1
। अब हम प्राप्त करते हैं:
00110000 00110001 00110010
जो [0x30, 0x31, 0x32]
बाइनरी में है। ये मान ["0", "1", "2"]
क्रमशः वर्णों का प्रतिनिधित्व करते हैं, इसलिए अंतिम आउटपुट होना चाहिए 012
।
स्कोरिंग
यह, निश्चित रूप से, कोड-गोल्फ है , जिसका अर्थ है कि आपके कोड को यथासंभव कम करना। स्कोर को बाइट्स में मापा जाता है।
बाधाओं और IO प्रारूप
मानक नियम लागू होते हैं। यहाँ कुछ अतिरिक्त नियम दिए गए हैं:
- आप मान्य इनपुट मान सकते हैं
- इनपुट स्ट्रिंग में दो अलग-अलग वर्ण होते हैं
- पहले दो किरदार अलग-अलग हैं
- इनपुट स्ट्रिंग की न्यूनतम लंबाई 2 वर्ण है
- लंबाई हमेशा 2 मोडुलो 8 देगी
- आप मान सकते हैं कि स्ट्रिंग में केवल मुद्रण योग्य ASCII वर्ण शामिल होंगे
- इनपुट और डिकोड्ड स्ट्रिंग दोनों में
- व्हाट्सएप के लीडिंग और ट्रेलिंग को आउटपुट में अनुमति दी जाती है (जो कुछ भी मेल खाता है
/\s*/
)