সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং নেয় যা দশমিক সংখ্যাকে প্রতিনিধিত্ব করে।
আমাদের ফাংশন নিম্নলিখিত নিয়মগুলির উপর ভিত্তি করে এই দশমিককে বাইনারিতে রূপান্তর/এনকোড করা উচিত।
n
এর প্রতিটি ডিজিটের জন্য- k হল d এর বিটের সংখ্যা
- আমরা k-1 গুন লিখি 0 এর পরে ডিজিট 1 লিখি
- আমরা একটি বাইনারি স্ট্রিং হিসাবে d সংখ্যা লিখি, ডানদিকের বিটটি সবচেয়ে কম তাৎপর্যপূর্ণ
- অবশেষে, আমরা d-এর কোডিং পেতে b) এবং c) এর ফলাফলকে সংযুক্ত করি
শেষ পর্যন্ত, আমরা n সংখ্যার জন্য পাওয়া সমস্ত ফলাফলকে একত্রিত করি।
সুতরাং, 0110 হিসাবে 2 কোড এবং 0111 হিসাবে 3
উদাহরণ
নিম্নলিখিত কোড -
const str = '77338855'; const encodeNumString = (str = '') => { const buildarray = (string = '') => { let n = string.split(''), res = ''; n.forEach(x => { let num = Number(x).toString(2); num = '0'.repeat(num.length -1) + '1' + num; res += num; }); return res; } const arr = []; let res = ""; for (let i = 0; i < 10; i++){ arr.push(buildarray(String(i))); }; while (str.length){ for (let i = 0; i < 10; i++) { if (str.startsWith(arr[i])) { res += String(i); str = str.slice(arr[i].length); break; } } } return res; }; console.log(encodeNumString(str));
আউটপুট
নিম্নোক্ত কনসোল আউটপুট -
001111001111011101110001100000011000001101001101