কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে সংখ্যা স্ট্রিংকে ০ ও ১ দিয়ে এনকোড করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি ডেসিমেল সংখ্যা নির্দেশকারী স্ট্রিং নেবে। ফাংশনটি নিচের নিয়ম অনুযায়ী এই ডেসিমেলকে বাইনারি-এ এনকোড/কনভার্ট করবে।

প্রতিটি অঙ্ক d জন্য n-এ:

  • k হলো d-এর বিটের সংখ্যা
  • আমরা k-1 বার ০ ডিজিট এবং তারপর ১ ডিজিট লিখব
  • d কে বাইনারি স্ট্রিং আকারে লিখব, ডান পাশের বিটটি least significant
  • শেষে b) এবং c) এর ফলাফল কম্বাইন করব d-এর কোডিং পাওয়ার জন্য

শেষে n-এর সকল অঙ্কের ফলাফল কম্বাইন করব। এভাবে, ২ কোড হবে 0110 এবং ৩ কোড হবে 0111।

উদাহরণ

নিচে কোডটি দেওয়া হলো:

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

  1. জাভাস্ক্রিপ্টে সংখ্যা এবং স্ট্রিং যোগ করলে কী হয়?

  2. জাভাস্ক্রিপ্টে রেগুলার এক্সপ্রেশন দিয়ে স্ট্রিংয়ের শব্দ গণনা

  3. জাভাস্ক্রিপ্টে একটি স্ট্রিং এবং একটি সংখ্যা কনক্যাটেনেট না হয়ে যোগ করা

  4. জাভাস্ক্রিপ্টে TextDecoder এবং TextEncoder