चुनौती
किसी भी डिफ़ॉल्ट I / O प्रारूप में दो तारों को देखते हुए, निम्नलिखित करें:
नोट: चुनौती "डेटा" के रूप में पहली स्ट्रिंग को संदर्भित करेगी और दूसरी को "प्रोग्राम" के रूप में संदर्भित किया जाएगा।
- प्रोग्राम को एक अनंत स्ट्रिंग में बदलें जो कि केवल प्रोग्राम को असीम रूप से दोहराया जाता है (जैसे
10
->1010101010...
)। चुनौती इसे "अनंत कार्यक्रम" के रूप में संदर्भित करेगी। हालांकि डेटा गैर-रिक्त है, अनंत प्रोग्राम पर लूपिंग करते समय निम्नलिखित करें:
ए। यदि वर्तमान कमांड "0" है, तो डेटा में बाएं-सबसे बिट को हटा दें। यदि डेटा खाली है, तो "0" कुछ भी नहीं करता है।
ख। यदि वर्तमान कमांड "1" है, तो प्रोग्राम के अगले चरित्र को डेटा में जोड़ें यदि डेटा में बाईं ओर सबसे बिट एक है।
सी। यदि डेटा अभी खाली नहीं है, तो डेटा को आउटपुट करें।
परीक्षण के मामलों
डेटा इनपुट के बाईं ओर है और प्रोग्राम दाईं ओर है।
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
टिप्पणियाँ
- डेटा और प्रोग्राम में केवल 0s और 1s शामिल होंगे
- ऐसे डेटा / प्रोग्राम के लिए जो रुकते नहीं हैं, आपके प्रोग्राम को रुकने की आवश्यकता नहीं है।
- इनपुट में डेटा और प्रोग्राम खाली नहीं होगा।
- आपके पास कई अनुगामी और अग्रणी नई समाचार हो सकते हैं
- मानक ढीले निषिद्ध हैं
- आप किसी भी सुविधाजनक I / O प्रारूप का उपयोग कर सकते हैं
हमेशा कोड-गोल्फ के साथ , सबसे छोटा कोड जीतता है !
100
जाता है , जिसकी परिभाषा "डेटा में बाएं-सबसे बिट हटाएं" है। की वाम-पंथी सा नहीं होता हो ? 10
0
100
1