আজ আপনার চ্যালেঞ্জ হল টি -9 -র মতো কার্যকারিতা বাস্তবায়ন করা ।
আপনি এমন একটি ফাংশন বাস্তবায়ন করবেন যার কেবলমাত্র 2 টি প্যারামিটার থাকবে।
আপনি একটি স্ট্রিংয়ে 1 টি ফোন নম্বর এবং শব্দের একটি তালিকা সহ একটি পাঠ্য ফাইলের সামগ্রী পাবেন (কোনও সুনির্দিষ্ট নতুন লাইনের স্টাইলটি ধরে নিবেন না)। কার্যকারিতা পরীক্ষা
করতে আপনি https://raw.githubusercontent.com/eneko/data-repository/master/data/words.txt লিঙ্কটি ব্যবহার করতে পারেন , বা ব্যবহার করতে পারেন /usr/share/dict/words
( আরও শব্দগুলির জন্য [বন্ধ] শব্দের একটি লিখিত ফাইল চেক করুন) তথ্য)।
আপনি ধরে নিতে পারেন যে আপনি সর্বদা কমপক্ষে 2 নম্বর পাবেন।
নম্বরটি দেওয়া, আপনি শব্দের একটি তালিকা থেকে পড়বেন এবং সেই শব্দগুলিতে বর্ণচিহ্নগুলির ম্যাপিংয়ের সাথে শুরু করে শব্দগুলি ফিরিয়ে দেবেন। এর অর্থ হ'ল ইনপুটটি কেবল 2 থেকে 9 নম্বর হওয়া উচিত।
আপনি যদি অবৈধ ইনপুট পান তবে আপনি যা করতে চান তা করতে পারেন।
যদি কোনও মিল খুঁজে পাওয়া যায় না, আপনি খালি তালিকা, null
/ nil
অথবা ফিরিয়ে দিতে পারেন 0
।
মনে রাখবেন যে সেলফোন কীগুলি তাদের সমতুল্য চরকে ম্যাপ করা হয়েছে:
- 0 এবং 1 অবৈধ
- ২ টি ম্যাচ [এবিসি]
- ৩ টি মিলছে [ডিএফ]
- ৪ টি ম্যাচ [জিহি]
- ৫ টি ম্যাচ [জে কেএল]
- Matches টি ম্যাচ [এমএনও]
- Matches টি ম্যাচ [pqrs]
- ৮ টি ম্যাচ [টুভ]
- এবং 9 ম্যাচ [wxyz]
উদাহরণ:
f('52726')
//returns ["Japan","japan","Japanee","Japanese","Japanesque"...,"larbowlines"]
f('552')
//returns ["Kjeldahl","kjeldahlization","kjeldahlize"...,"Lleu","Llew"]
f('1234')
//makes demons fly out your nose or divide by 0
f('9999')
//returns ["Zyzzogeton"]
f('999999')
//returns [] or null/nil or 0
আপনি আপনার ফাংশনটি চালানোর পরে, আপনি এটি যে কোনও উপায়ে মুদ্রণ করতে পারেন।
নিয়মাবলী:
- স্ট্যান্ডার্ড লুফোলগুলি ইনভালিড
- আপনি কিছু ফিরে আসবে, এমনকি যদি তা না হয়
null
/nil
জাভাস্ক্রিপ্ট ফিরে আসবেundefined
, তাই এই নিয়ম যদি আপনি কিছু আসতে হবে না। - আপনি অন্যের উত্তরগুলি ব্যবহার করতে বা পুনরায় প্রয়োগ করতে বা আমার বাস্তবায়ন অনুলিপি করতে পারবেন না।
- জাভাস্ক্রিপ্টের জন্য আপনি ধরে নিতে পারেন, ব্রাউজারটি ইতিমধ্যে খোলা হবে এবং স্বয়ংক্রিয় উপাদানটি
innerText
/textContent
২ য় প্যারামিটার হিসাবে পাস হবে - সংকলিত ভাষাগুলির জন্য, আপনি সংকলকটিতে বিশেষ যুক্তিগুলি পাস করতে পারবেন না
- সংকলক যুক্তির মাধ্যমে আপনি ফাইলের নামটি পেতে পারেন
- ভেরিয়েবলস, ম্যাক্রোস, গ্লোবাল ভেরিয়েবলস, কনস্ট্যান্টস, অ-মানক ক্লাস এবং ফাংশনের অভ্যন্তরে অন্যান্য মানগুলি পাস করার সমস্ত ধরণের অবৈধ হিসাবে বিবেচিত হবে।
- জাভাস্ক্রিপ্টে, কীওয়ার্ড ছাড়াই ভেরিয়েবলগুলি
var
আপনার কোডটিকে অবৈধ করে - আপনার ফাংশন নাম দেওয়া হবে
f
- আপনার ফাংশনে আপনার কেবলমাত্র 2 টি যুক্তি থাকতে পারে
- আপনার কোডটি চালানোর জন্য 500 সেকেন্ডের মধ্যে রাখার চেষ্টা করুন।
- হোয়াইটস্পেস নিয়ে আপনাকে চিন্তা করতে হবে না
- আপনাকে অবশ্যই ASCII মুদ্রণযোগ্য অক্ষর ব্যবহার করতে হবে ।
ব্যতিক্রমগুলি হ'ল এমন ভাষা যা কেবল প্রিন্টযোগ্য অক্ষর ব্যবহার করে (এপিএল এবং হোয়াইটস্পেস 2 উদাহরণ)।
স্কোরিং:
- সর্বনিম্ন সংখ্যা বাইট জিতেছে
- আপনার উত্তরে অবৈধ ASCII মুদ্রণযোগ্য অক্ষর থাকা, উত্তরটি ইউটিএফ -32
এ এনকোড করা হিসাবে গণনা করা হবে এনকোডিংয়ের ব্যতিক্রম আপনার উত্তরটিকে অক্ষর দ্বারা গণনা করবে । - কেবল ফাংশন বডি গণনা করে, আপনি এর বাইরে অন্য কিছু করেন না
- আপনি যদি প্রতিবেশী বা সর্বাধিক প্রচলিত শব্দের উপর ভিত্তি করে পূর্বাভাস সিস্টেম করেন তবে -30% এর বোনাস
- আকারের বোনাস -20% যদি আপনি কেবল প্রথম সংখ্যার সাথে সম্পর্কিত প্রতিটি বর্ণের জন্য প্রথম 5 টি ম্যাচ ফেরত দেন (যেমন: 245 'a' দিয়ে শুরু হওয়া 5 টি শব্দ, 5 'বি' দিয়ে শুরু হবে এবং 5 'গ' দিয়ে শুরু হবে )।
জাভাস্ক্রিপ্ট ব্যবহার করে এখানে একটি প্রয়োগের উদাহরণ দেওয়া হল:
function f(phone, words)
{
var keypad=['','','abc','def','ghi','jkl','mno','pqrs','tuv','wxyz'];
var regex='';
for(var i=0,l=phone.length;i<l;i++)
{
regex+='['+keypad[phone[i]]+']';
}
var regexp=new RegExp('\\s('+regex+'[a-z]*)\\s','gi');
return words.match(regexp);
}
এটি চালানোর জন্য, তালিকার লিঙ্কটি খুলুন এবং চালান, উদাহরণস্বরূপ:
f('9999',document.getElementsByTagName('pre')[0].innerText);
//returns [" Zyzzogeton "]
এই উদাহরণটি পরীক্ষা করা হয়েছিল এবং উইন্ডোজ 7 হোম সংস্করণ 64 বিটগুলিতে অপেরা 12.17 64 বীটের অধীনে কাজ করে।