কম্পিউটার

জাভাস্ক্রিপ্টে একটি স্ট্রিংকে সর্বাধিক অংশে বিভক্ত করা


সমস্যা

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

আমাদের ফাংশনের উদ্দেশ্য হল এই স্ট্রিংটিকে যতটা সম্ভব অনেক অংশে বিভক্ত করা যাতে প্রতিটি অক্ষর সর্বাধিক একটি অংশে উপস্থিত হয় এবং এই অংশগুলির আকারের প্রতিনিধিত্বকারী পূর্ণসংখ্যাগুলির একটি অ্যারে ফেরত দেয়৷

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়

ইনপুট

const str = "ababcbacadefegdehijhklij";

আউটপুট

const output = [9, 7, 8];

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

বিভাজন হল "আবাবকবাচা", "দেফেগদে", "হিজক্লিজ"। এটি একটি পার্টিশন যাতে প্রতিটি অক্ষর সর্বাধিক একটি অংশে উপস্থিত হয়। একটি পার্টিশন যেমন "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. জাভাস্ক্রিপ্টে একটি সংখ্যা স্ট্রিংকে 0 এবং 1 সেকেন্ডে এনকোড করা

  4. জাভাস্ক্রিপ্টে একে অপরের কাছাকাছি n অংশে সংখ্যা বিভক্ত করা