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

জাভাস্ক্রিপ্টে স্ট্রিংর রিপিটিং লেটার কাউন্ট করে কমপ্রেস করা


সমস্যা বিবরণ

একটি স্ট্রিং দেওয়া আছে। কনসিকিউটিভ রিপিটিং ক্যারেক্টার কাউন্ট করে "কাউন্ট + ক্যারেক্টার" ফরম্যাটে কমপ্রেস করতে হবে।

ইনপুট: 'aabbcde' → আউটপুট: '2a2b1c1d1e'

সমাধান

const str = 'aabbcde';

const repeatLetter = (str = '') => {
  const strArr = str.split("").sort();
  let count = 1;
  let i = 1;
  let res = '';
  while (i < strArr.length) {
    if (strArr[i - 1] === strArr[i]) {
      count++;
    } else {
      res += count + strArr[i - 1];
      count = 1;
    }
    i++;
  }
  res += count + strArr[i - 1];
  return res;
};

console.log(repeatLetter(str));

আউটপুট

2a2b1c1d1e

গুরুত্বপূর্ণ নোট

এই কোডটি স্ট্রিং সর্ট করে (split("").sort()), তাই আউটপুট অ্যালফাবেটিক্যালি অর্ডার্ড হয়। আসল স্ট্রিংয়ের অর্ডার মেইনটেইন করতে চাইলে sort() বাদ দিন।

অর্ডার মেইনটেইন করে ভার্সন

const repeatLetterOrdered = (str = '') => {
  let res = '', count = 1;
  for (let i = 1; i <= str.length; i++) {
    if (str[i] === str[i-1]) count++;
    else { res += count + str[i-1]; count = 1; }
  }
  return res;
};
  1. জাভাস্ক্রিপ্ট অ্যারে অবজেক্ট গণনা করার উপায়

  2. জাভাস্ক্রিপ্ট const কীওয়ার্ড

  3. জাভাস্ক্রিপ্টে Const এবং Let এর পার্থক্য

  4. জাভাস্ক্রিপ্টে স্ট্রিং নির্দিষ্ট বার রিপিট করা