এই চ্যালেঞ্জের জন্য, আপনাকে 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...?