সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং নেয় যা দশমিক সংখ্যাকে প্রতিনিধিত্ব করে।
আমাদের ফাংশন নিম্নলিখিত নিয়মগুলির উপর ভিত্তি করে এই দশমিককে বাইনারিতে রূপান্তর/এনকোড করা উচিত।
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