কম্পিউটার

জাভাস্ক্রিপ্টে একই স্ট্রিং অক্ষর আলাদা করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং অক্ষর, str, প্রথম আর্গুমেন্ট হিসাবে নেয় এবং একটি সংখ্যা, num, (num <<স্ট্রিং str এর দৈর্ঘ্য) দ্বিতীয় আর্গুমেন্ট হিসাবে।

ফাংশনটি স্ট্রিং স্ট্র-এর অক্ষরগুলিকে পুনর্বিন্যাস করতে হবে এবং একটি নতুন স্ট্রিং তৈরি করতে হবে যাতে কোনও দুটি অনুরূপ অক্ষর সংখ্যা অক্ষরের চেয়ে কম না হয়, অন্য কথায় অনুরূপ অক্ষরগুলি অন্তত সংখ্যা অক্ষরের দূরত্বে হওয়া উচিত৷

ফাংশন তারপর অবশেষে নতুন নির্মিত স্ট্রিং ফেরত দেওয়া উচিত. এবং যদি এই বিন্যাসটি অর্জন করা সম্ভব না হয়, তাহলে আমাদের ফাংশনটি একটি খালি স্ট্রিং ফিরিয়ে দেবে।

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

const str = 'kkllmm';

তারপর আউটপুট −

হওয়া উচিত
const output = 'mlmklk';

উদাহরণ

এর জন্য কোড হবে −

const str = 'kkllmm';
const placeApart = (str = '') => {
   const map = {};
   for(let i=0; i<str.length; i++){
      map[str[i]] = map[str[i]] || 0;
      map[str[i]] ++;
   }
   let keys = Object.keys(map).sort((a,b)=>{
      if(map[a]<map[b])
      return 1;
      return -1;
   });
   let len = str.length%2 ? (Math.floor(str.length/2)+1) : str.length/2;
   if(map[keys[0]] > len){
      return "";
   };
   const res = [];
   let index = 0, max = str.length-1;
   while(keys.length){
      let currKey = keys.shift();
      let count = map[currKey];
      while(count){
         res[index] = currKey;
         index = index+2;
         if(index>max)
            index=1;
            count--;
      }
   }
   return res.join("");
};
console.log(placeApart(str));

আউটপুট

এবং কনসোলে আউটপুট হবে −

mlmklk

  1. জাভাস্ক্রিপ্টে অনন্য অক্ষর ধারণ করার জন্য ফিল্টারিং স্ট্রিং

  2. জাভাস্ক্রিপ্ট ব্যবহার করে একটি স্ট্রিং-এ সমস্ত অনন্য অক্ষর রয়েছে কিনা তা পরীক্ষা করা হচ্ছে

  3. জাভাস্ক্রিপ্টে একটি স্ট্রিংয়ের অক্ষরগুলিকে পুনরায় গোষ্ঠীবদ্ধ করা

  4. C# এ একটি স্ট্রিংয়ের অক্ষর অদলবদল করা