আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং নেয় যাতে কিছু ক্রমাগত পুনরাবৃত্তি করা অক্ষর থাকতে পারে।
ফাংশনটি স্ট্রিংটিকে এভাবে কম্প্রেস করতে হবে -
'wwwaabbbb' -> 'w3a2b4' 'kkkkj' -> 'k4j'
এবং যদি সংকুচিত স্ট্রিংটির দৈর্ঘ্য আসল স্ট্রিংয়ের চেয়ে বেশি বা সমান হয় তবে আমাদের আসল স্ট্রিংটি ফিরিয়ে দেওয়া উচিত।
যেমন −
'aab' কে 'a2b1' তে সংকুচিত করা যেতে পারে কিন্তু এটি এর দৈর্ঘ্য বাড়িয়ে 4 করে তাই আমাদের ফাংশনটি '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