ধরুন আমাদের কাছে সংখ্যা ১২১৪৫ আছে। আমাদের একটি ফাংশন লিখতে হবে যা সংখ্যার অঙ্কগুলোকে ইংরেজি অ্যালফাবেটের সাথে ম্যাপ করবে নিচের নিয়ম অনুযায়ী। অ্যালফাবেটগুলো ১-ভিত্তিক ইনডেক্স অনুযায়ী ম্যাপ হবে, যেমন 'a' ১-এর জন্য, 'b' ২-এর জন্য, 'c' ৩-এর জন্য ইত্যাদি।
একটি সংখ্যা ম্যাপ করার অনেক পথ থাকতে পারে। উপরের ১২১৪১৫ সংখ্যাটি নিই উদাহরণস্বরূপ,
এটি ম্যাপ করা যেতে পারে −
12145->1,2,1,4,5->a,b,a,d,e
এটিও হতে পারে −
12145->12,1,4,5->l,a,d,e
এটিও হতে পারে −
12145->12,14,5->l,n,e
এবং আরও, কিন্তু ১২১৪৫ কখনো ১,২,১,৪৫ হতে পারবে না কারণ ৪৫-এর জন্য অ্যালফাবেটে কোনো ম্যাপিং নেই। তাই আমাদের ফাংশনটি অ্যালফাবেট ম্যাপিং-র সব পারমুটেশন রিটার্ন করবে।
কোডটি নিচে দেওয়া হলো −
উদাহরণ
const num = 12145; const mapToAlphabets = num => { const numStr = '' + num; let res = []; const shoveElements = (left, right) => { if (!left.length) { res.push(right.map(el => { return (+el + 9).toString(36); }).join('')); return; }; if(+left[0] > 0){ shoveElements(left.slice(1), right.concat(left[0])); }; if(left.length >= 2 && +(left.slice(0, 2)) <= 26){ shoveElements(left.slice(2), right.concat(left.slice(0, 2))); }; }; shoveElements(numStr, []); return res; } console.log(mapToAlphabets(num));আউটপুট
কনসোলে আউটপুট −
[ 'abade', 'abne', 'aude', 'lade', 'lne' ]