মেনু শর্টকাটস
প্রথাগতভাবে, ব্যবহারকারী মেনু যেমন কীবোর্ড শর্টকাট, দ্বারা প্রবেশযোগ্য Alt + (a letter)
যখন সমস্ত textboxes (unfocused হয়, অথবা এমনকি কেবল চিঠি আঘাত জিমেইল শৈলী)।
তোমার কাজ
একটি ইনপুট হিসাবে মেনু এন্ট্রি দেওয়া, আপনার কাজ প্রতিটি মেনু এন্ট্রি একটি সঠিক শর্টকাট চিঠি প্রদান।
একটি ফাংশন বা একটি প্রোগ্রাম লিখুন যা শব্দের একটি সেট গ্রহণ করে - মেনু এন্ট্রি (স্ট্রিংগুলির একটি অ্যারে বা আপনার ভাষার সমতুল্য) হিসাবে, এবং একটি অভিধান বা একটি হ্যাশম্যাপ, একটি অক্ষর থেকে একটি মেনু প্রবেশে ফেরত দেয়।
আপনি হয় একটি প্যারামিটার ব্যবহার করতে পারেন এবং একটি মান ফেরত দিতে পারেন, বা STDIN ব্যবহার করতে পারেন এবং আপনার ফলাফলগুলি STDOUT এ আউটপুট করতে পারেন। আপনাকে বৈশ্বিক / স্কোপ ভেরিয়েবলটি ইতিমধ্যে ইনপুট দিয়ে পপুলেট ধরেছে তা অনুমোদিত নয় ।
সঠিক অক্ষর নির্ধারণের জন্য অ্যালগরিদম
- মূলত এটি শব্দের প্রথম উপলব্ধ অক্ষর। অনুমান এবং নীচে উদাহরণ দেখুন।
- সমস্ত প্রবেশপত্রের চিঠিগুলি উপলভ্য না হলে শর্টকাটটি হবে
(a letter) + (a number)
। প্রবেশ থেকে আপনি কোন চিঠিটি নির্বাচন করেন তা স্বেচ্ছাসেবী। সংখ্যাটি 0 থেকে শুরু হওয়া উচিত এবং 1 দ্বারা বাড়ানো উচিত - যেমন সমস্ত শর্টকাট অনন্য। নীচে তৃতীয় উদাহরণ দেখুন।
অনুমিতি
- ইনপুটটি একটি সেট হবে, অর্থাত্ কোনও পুনরাবৃত্তি নয়, প্রতিটি প্রবেশ অনন্য।
- ইনপুটটির দৈর্ঘ্য কোনও অ-নেতিবাচক পূর্ণসংখ্যার (আপনার ভাষার MAX_INT অবধি) হতে পারে।
- কেস সংবেদনশীলতা: ইনপুট কেস-সংবেদনশীল, (তবে কেস উপেক্ষা করার সময় এটি অনন্য থাকবে)। ফলাফলগুলিতে তাদের আসল কেসিং সহ মূল এন্ট্রিগুলি থাকা উচিত। তবে আউটপুট শর্টকাট অক্ষরগুলি কেস-সংবেদনশীল নয়।
- সমস্ত ইনপুট শব্দ সংখ্যা দিয়ে শেষ হবে না।
- কোনও "দুষ্ট ইনপুট" পরীক্ষা করা হবে না। "এভিল ইনপুট" এমনটি যে আপনাকে কোনও নির্দিষ্ট চিঠির কাউন্টারকে 10 বারের বেশি বাড়িয়ে দিতে হয়।
উদাহরণ
নীচের উদাহরণগুলি JSON এ রয়েছে, তবে আপনি আপনার ভাষাটি একটি অ্যারে এবং অভিধানের জন্য সমতুল্য ব্যবহার করতে পারেন, বা - আপনি এসটিডি আই / ও ব্যবহার করছেন - আপনার ইনপুট এবং আউটপুটটির জন্য কোনও পাঠযোগ্য বিন্যাস (যেমন সিএসভি, এমনকি স্পেস- পৃথক মান)।
1।
Input: ['File', 'Edit', 'View', 'Help']
Output: {f:'File', e:'Edit', v:'View', h:'Help'}
2।
Input: ['Foo', 'Bar', 'FooBar', 'FooBars']
Output: {f:'Foo', b:'Bar', o:'FooBar', a:'FooBars'}
3।
Input: ['a', 'b', 'aa', 'bb', 'bbq', 'bbb', 'ba']
Output: {a:'a', b:'b', a0:'aa', b0:'bb', q:'bbq', b1:'bbb', b2:'ba'}
জয়ের শর্ত
সংক্ষিপ্ততম কোড জিতেছে। শুধুমাত্র এএসসিআইআই অনুমোদিত।
['ab', 'a']
দিতে {a:'ab', a0:'a'}
বা {b:'ab', a:'a'}
?