सोमवार मिनी-गोल्फ: लघु कोड-गोल्फ चुनौतियों की एक श्रृंखला , हर सोमवार को पोस्ट (उम्मीद है!)।
सच्ची कहानी 1 : दूसरे दिन, मैं अपने टैबलेट पर चारों ओर खेल रहा था, जब मुझे उस पृष्ठ पर जाने का विचार था जिसका मैं सामान्य रूप से अपने पीसी पर जावास्क्रिप्ट परीक्षण के लिए उपयोग करता हूं। पृष्ठ लोड होने के बाद, मैंने इस सरल कार्यक्रम में प्रवेश किया:
alert("Hello!")
मैं तब Execute बटन दबाने के लिए आगे बढ़ा, और जब उसने मुझे बताया कि मेरे द्वारा दर्ज किया गया कोड अमान्य था, तो वह आश्चर्यचकित था। मैंने टेक्स्टबॉक्स पर दूसरा नज़र डाला और यह देखा:
alllelelerlerlertlert("Heeelelellellelloello!")
वा ??? यही नहीं मैंने प्रवेश किया! तो यहाँ क्या हुआ? इसका पता लगाने के लिए, मैंने दो सरल रेखाएँ दर्ज कीं:
abcdefg
0123456
यह निकला:
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg
0112123123412345123456
अब तक, मुझे अभी तक कोई सुराग नहीं था कि पत्रों का क्या हुआ, लेकिन संख्या सरल लग रही थी, इसलिए मैंने करीब से देखा। जैसा कि यह निकला, वेबपेज बस पहले चरित्र में प्रवेश कर रहा था, फिर हर बार स्ट्रिंग में बाकी सभी को दोहराते हुए एक नया दबाया गया:
0112123123412345123456
0
1
12
123
1234
12345
123456
लेकिन पत्रों के वर्गों के बारे में क्या? एक मिनट के लिए विचार करने के बाद, मुझे एहसास हुआ कि यह सिर्फ एक ही है, लेकिन बजाय एक बार प्रत्येक उपधारा दोहराने की, यह दोहराता दो बार :
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg
a
bb
bcbc
bcdbcd
bcdebcde
bcdefbcdef
bcdefgbcdefg
इन तकनीकों के संयोजन के साथ दो काम करता है:
abc123z
abbbcbcbc1bc12bc123bc123zbc123z
a
bb
bcbc
bc1
bc12
bc123
bc123zbc123z
जो भी गड़बड़ होती है, वह विराम चिह्नों और स्थानों पर रीसेट होने लगती है, इसलिए abc def
बन जाती है abbbcbc deeefef
।
इस बिंदु तक, मैं इसे पता लगाने और इसे एक दिलचस्प चुनौती में बदलने में इतना अवशोषित हो गया कि मैं भूल गया कि मैं वहां पहले स्थान पर क्यों था। (मैंने सामान्य रूप से टाइप करने का तरीका पता किया, हालांकि: हर चरित्र के बाद स्पेस-बैकस्पेस को दबाया। बहुत थकाऊ, लेकिन आपको वह करना होगा जो आप करते हैं।)
चुनौती
चुनौती का लक्ष्य एक प्रोग्राम या फ़ंक्शन लिखना है जो पाठ में संसाधित होने के लिए लेता है, ऊपर सूचीबद्ध परिवर्तन करता है, और परिणाम / आउटपुट देता है।
विवरण
- इनपुट में केवल मुद्रण योग्य ASCII, और कोई टैब या newlines नहीं होगा।
परीक्षण के मामलों
इनपुट्स: (प्रति पंक्ति एक)
Mess up text
This is some longer text.
CAPS LOCK && "Punc-tua"+'tion'
under_score_style
CaPs wItHIn loWERs
1337 numb3r5
abcdefghij 0123456789
Code-golf is the best!
आउटपुट:
Meeesesessess upp teeexexextext
Thhhihihishis iss sooomomomeome looononongongongeongeongeronger teeexexextext.
CAAAPAPAPSAPS LOOOCOCOCKOCK && "Puuunununcunc-tuuuaua"+'tiiioioionion'
unnndndndendendernder_scccococorcorcorecore_stttytytyltyltyletyle
CaaaPaPaPsaPs wIIItItItHItHItHIItHIItHInItHIn loooWoWoWEoWEoWERoWERoWERsoWERs
1333337 nuuumumumbumbumb3umb3rumb3rumb3r5
abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefgbcdefghbcdefghbcdefghibcdefghibcdefghijbcdefghij 0112123123412345123456123456712345678123456789
Cooodododeode-gooolololfolf iss thhhehe beeesesestest!
स्कोरिंग
यह कोड-गोल्फ है , इसलिए बाइट्स जीत में सबसे कम वैध कोड है। टाईब्रेकर प्रस्तुत करने के लिए जाता है जो पहले अपने अंतिम बाइट की गिनती तक पहुंच गया। विजेता को अगले सोमवार, 2 नवंबर को चुना जाएगा। शुभकामनाएँ!
संपादित करें: और विजेता है ... @ मार्टिनबटनर ने एक अविश्वसनीय 43-बाइट समाधान के लिए रेटिना का उपयोग किया !
1 हां, यह कहानी पूरी तरह से सच है, और अगर आपको किसी और स्पष्टीकरण की आवश्यकता है, तो फुटनोट 1 देखें।
' '.join(x[0]+''.join(2*x[1:i]for i in range(1,len(x)+1)) for x in raw_input().split())