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

জাভাস্ক্রিপ্টে স্ট্রিংকে সর্বোচ্চ অংশে ভাগ করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং str প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।

ফাংশনটির উদ্দেশ্য হল এই স্ট্রিংকে যতটা সম্ভব বেশি অংশে পার্টিশন করা যাতে প্রতিটি অক্ষর সর্বোচ্চ একটি অংশে থাকে, এবং এই অংশগুলোর সাইজের একটি অ্যারে ইন্টিজার হিসেবে ফেরত দিতে হবে।

উদাহরণস্বরূপ, যদি ইনপুট হয় –

ইনপুট

const str = "ababcbacadefegdehijhklij";

আউটপুট

const output = [9, 7, 8];

আউটপুট ব্যাখ্যা

পার্টিশন হল "ababcbaca", "defegde", "hijhklij"। এটি একটি পার্টিশন যাতে প্রতিটি অক্ষর সর্বোচ্চ একটি অংশে থাকে। "ababcbacadefegde", "hijhklij" এর মত পার্টিশন ভুল, কারণ সেটি স্ট্রিংকে কম অংশে ভাগ করে।

উদাহরণ

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

const str = "ababcbacadefegdehijhklij"; 
const splitStrings = (str = '') => { 
  const res = []; 
  const map = {}; 
  for (let i = 0; i < str.length; i++) { 
    map[str[i]] = i; 
  } 
  let start = 0; 
  while (start <= str.length - 1) { 
    let end = map[str[start]]; 
    for (let i = start + 1; i < end; i++) { 
      const currentEnd = map[str[i]]; 
      if (currentEnd > end) { 
        end = currentEnd; 
      } 
    } 
    res.push(end - start + 1); 
    start = end + 1; 
  } 
  return res; 
}; 
console.log(splitStrings(str));

আউটপুট

[ 9, 7, 8 ]

  1. জাভাস্ক্রিপ্টে স্ট্রিংয়ের স্বরবর্ণ গণনা করা

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

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

  4. জাভাস্ক্রিপ্টে সংখ্যা n ভাগে বাঁটা যাতে পার্থক্য ন্যূনতম