इस चुनौती के लिए, आपको रूबी के Abbrevमॉड्यूल को कम से कम कोड में लागू करना होगा ।
चुनौती
इनपुट वह होगा जो आपकी भाषा में स्ट्रिंग्स की एक सरणी (सरणी, सूची, अनुक्रम, आदि) के रूप में होगा। आप एक फ़ंक्शन लिख सकते हैं, या आप STDIN पर अल्पविराम से अलग किए गए शब्दों को स्वीकार कर सकते हैं।
फिर आपको उन तारों के लिए अस्पष्ट उपसर्गों के सेट की गणना करनी चाहिए। इसका मतलब है कि आपको अपने मूल तार के संक्षिप्त विवरण के हैश (या मानचित्र, ऑब्जेक्ट आदि) को वापस करना होगा।
एक "उपसर्ग" स्ट्रिंग की शुरुआत में मूल स्ट्रिंग का एक विकल्प है। उदाहरण के लिए, "उपसर्ग" शब्द "उपसर्ग" का एक उपसर्ग है।
एक स्पष्ट उपसर्ग एक है कि केवल एक शब्द का मतलब कर सकते हैं। उदाहरण के लिए, यदि आपका इनपुट है
car,cat, तोcaएक अस्पष्ट उपसर्ग नहीं है क्योंकि इसका मतलब "कार" या "बिल्ली" हो सकता है।इस नियम का अपवाद यह है कि एक शब्द हमेशा स्वयं का एक उपसर्ग होता है। उदाहरण के लिए, यदि आपके पास इनपुट है जैसे कि
car,carpet,car:carआपके आउटपुट में होना चाहिए।
फिर आप हैश / मैप / ऑब्जेक्ट / आदि वापस कर सकते हैं। अपने फ़ंक्शन से (या अपनी भाषा में समकक्ष करें), या इसे
key:valueजोड़े में STDOUT में प्रिंट करेंf:foo,fo:foo,...। (कुंजी-मूल्य जोड़े को व्हाट्सएप द्वारा अलग किया जा सकता है यदि यह आपके कोड को छोटा बनाता है।)
परीक्षण के मामलों
Input code,golf,going
Output c:code,co:code,cod:code,code:code,gol:golf,golf:golf,goi:going,goin:going,going:going
Input pie
Output p:pie,pi:pie,pie:pie
Input pie,pier,pierre
Output pie:pie,pier:pier,pierr:pierre,pierre:pierre
Input a,dog
Output a:a,d:dog,do:dog,dog:dog
नियम
इनपुट में डुप्लिकेट तत्व नहीं होंगे।
आपका आउटपुट किसी भी क्रम में हो सकता है; आपको इसे क्रमबद्ध नहीं करना है।
आप
Abbrevरूबी की तरह एक अंतर्निहित मॉड्यूल / फ़ंक्शन / चीज़ का उपयोग नहीं कर सकते हैं ।यह कोड-गोल्फ है , इसलिए बाइट्स में सबसे छोटा कोड जीत जाएगा!
key:value\nkey:value\nkey:value...?