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

জাভাস্ক্রিপ্টে স্ট্রিং কম্প্রেস (Compress) করা


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং গ্রহণ করবে যেটে কিছু liên tục রিপিটিং (repeating) ক্যারেক্টার থাকতে পারে।

ফাংশনটি স্ট্রিংকে নিচের মতো কম্প্রেস করবে —

'wwwaabbbb' -> 'w3a2b4' 
'kkkkj' -> 'k4j'

এবং যদি কম্প্রেসড স্ট্রিংয়ের দৈর্ঘ্য মূল স্ট্রিংয়ের চেয়ে বড় বা সমান হয়, তবে মূল স্ট্রিংটি রিটার্ন করবে।

উদাহরণস্বরূপ —

'aab' কে 'a2b1' এ কম্প্রেস করা যায় কিন্তু দৈর্ঘ্য ৪ হয়ে যায় যা মূল স্ট্রিংয়ের চেয়ে বড়, তাই ফাংশনটি 'aab' রিটার্ন করবে।

উদাহরণ

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

const str1 = 'wwwaabbbb'; 
const str2 = 'kkkkj'; 
const str3 = 'aab'; 
const compressString = (str = '') => { 
  let res = ''; 
  let count = 1; 
  for(let i = 0; i < str.length; i++){ 
    let cur = str[i]; 
    let next = str[i + 1]; 
    if(cur === next){ 
      count++; 
    }else{ 
      res += cur + String(count); 
      count = 1; 
    }; 
  } 
  return res.length < str.length ? res : str; 
}; 
console.log(compressString(str1)); 
console.log(compressString(str2)); 
console.log(compressString(str3));

আউটপুট

কনসোল আউটপুট:

3a2b4 k4j1 aab

  1. জাভাস্ক্রিপ্ট দিয়ে স্ট্রিং বুলিয়ানে রূপান্তর করা

  2. জাভাস্ক্রিপ্টে স্ট্রিংয়ের ব্র্যাকেট ভ্যালিডেট করা

  3. জাভাস্ক্রিপ্টে ক্যামেলকেস স্ট্রিং আনক্যামেলাইজ করা

  4. জাভাস্ক্রিপ্টে সিমিলার স্ট্রিং গ্রুপ খুঁজে বের করা