मुझे एसओ पर यह सवाल आया और उसने सोचा कि यह एक अच्छा गोल्फ चैलेंज बना देगा। तो यहाँ है:
चुनौती:
एक प्रोग्राम लिखें जो वर्ण तार का एक क्रम पढ़ता है, प्रति पंक्ति एक, और सभी पदों की एक सूची को आउटपुट करता है जहां प्रत्येक स्ट्रिंग में समान चरित्र होता है।
इनपुट और आउटपुट:
इनपुट में मुद्रण योग्य गैर-व्हाट्सएप ASCII वर्णों की एक या अधिक पंक्तियाँ होती हैं, प्रत्येक के बाद एक नई पंक्ति होती है। आप मान सकते हैं कि सभी इनपुट लाइनों की लंबाई समान है। न्यूलाइन को इनपुट का हिस्सा नहीं माना जाना चाहिए (यानी आपको इसे मैचिंग कैरेक्टर के रूप में आउटपुट नहीं करना चाहिए)।
उदाहरण इनपुट (बेशर्मी से SO प्रश्न से चुराया गया):
abcdefg
avcddeg
acbdeeg
इनपुट को पढ़ने के बाद, आपके प्रोग्राम को प्रत्येक मिलान कॉलम और उनमें मौजूद वर्णों की स्थिति को प्रिंट करना चाहिए। (आपका कार्यक्रम हो सकता है, लेकिन आवश्यकता नहीं है, आगे के इनपुट को पढ़ना बंद कर दें यदि यह जल्दी निर्धारित कर सकता है कि कोई मेल खाने वाले कॉलम नहीं हैं।) किसी भी उचित आउटपुट प्रारूप की अनुमति है; विशेष रूप से, आप स्थिति के लिए 0-आधारित या 1-आधारित अनुक्रमण का उपयोग कर सकते हैं।
उपरोक्त इनपुट के लिए उदाहरण आउटपुट (0-आधारित इंडेक्सिंग का उपयोग करके):
0: a
3: d
6: g
स्कोरिंग:
यह कोड गोल्फ है, इसलिए सबसे कम उत्तर जीतता है। एक टाई की स्थिति में, अतिरिक्त सुविधाओं के लिए आंशिक टाई ब्रेकर चार्ट से सम्मानित किया जा सकता है:
- असमान लंबाई की इनपुट लाइनों को सही ढंग से संभालने के लिए −½ चार्ट। (आउटपुट में सबसे छोटी इनपुट लाइन के अंत में स्थितियाँ नहीं होनी चाहिए।)
- यूटीएफ -8 को मनमाने ढंग से यूनिकोड वर्णों से मिलकर इनपुट को सही ढंग से संभालने के लिए चार्ट।
प्रेरणा के लिए, आपको SO प्रश्न (ऊपर देखें) में कुछ अपुष्ट समाधान मिल सकते हैं।
स्पष्टीकरण:
बस पदों और पात्रों को समेटते हुए, जैसा कि
0a3d6g, "उचित आउटपुट" के रूप में नहीं गिना जाता है। आपको आउटपुट के प्रत्येक तत्व के बीच किसी प्रकार का विभाजक (जैसे कि एक स्थान) प्रदान करना चाहिए, ताकि इसे अनजाने में पार्स किया जा सके।इनपुट मानक इनपुट स्ट्रीम (
stdin) पर प्रदान किया जाएगा , या अपनी पसंद की भाषा के लिए जो भी टेक्स्ट फ़ाइल इनपुट तंत्र है, उसका उपयोग करना। (यदि आपकी चुनी हुई भाषा में फ़ाइल इनपुट के लिए एक प्राकृतिक तंत्र नहीं है , तो जो कुछ भी आत्मा में निकटतम लगता है, उसे करें।)इनपुट तब समाप्त होता है जब पढ़ने के लिए अधिक डेटा नहीं होता है (यानी जब कोई फ़ाइल की स्थिति होती है)। यदि आप चाहें, तो आपको आवश्यकता हो सकती है कि इनपुट को एक रिक्त रेखा द्वारा समाप्त किया जाए (जो आपको तब इनपुट के भाग के रूप में नहीं गिनना चाहिए, जाहिर है)। यदि आप ऐसा करते हैं, तो कृपया अपने उत्तर में इसका उल्लेख करें ताकि अन्य लोग परीक्षण के लिए सही इनपुट प्रदान कर सकें।
हर इनपुट लाइन, जिसमें आखिरी भी शामिल है, एक नई लाइन वर्ण के साथ समाप्त होती है। आपके उत्तर को इस मेल को मेल खाते कॉलम के रूप में रिपोर्ट नहीं करना चाहिए। (यह ठीक है अगर आपका समाधान इनपुट को भी संभाल सकता है जहां अंतिम पंक्ति एक नई पंक्ति में समाप्त नहीं होती है, लेकिन इसकी आवश्यकता नहीं है।)