আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা পুনরাবৃত্ত ক্যারেক্টার সহ একটি স্ট্রিং নেবে এবং একটি নতুন স্ট্রিং ফেরত দেবে যেখানে সব একই ক্যারেক্টার একে অপরের থেকে ঠিক n ক্যারেক্টার দূরত্বে থাকে। এবং সংখ্যাটি অ্যারের দৈর্ঘ্যের চেয়ে ছোট হওয়া উচিত।
উদাহরণস্বরূপ:
যদি ইনপুট স্ট্রিং হয়: "accessories" এবং সংখ্যা n হল 3 তবে, রিটার্ন ভ্যালু হওয়া উচিত: "secrsecisao"
নোট - প্রয়োজনীয় আউটপুট পেতে অন্য কোনো পারমুটেশনও থাকতে পারে, ক্রম গুরুত্বপূর্ণ নয়, আমাদের লজিক মেনে চলে যতক্ষণ না আমরা শর্ত পূরণ করি আউটপুট সঠিক।
এই ফাংশনের কোড লিখি:
উদাহরণ
const str = 'accessories';
const equalDistance = (str, num) => {
const map = str.split("").reduce((acc, val) => {
const count = acc.get(val);
if(typeof count === 'number'){
acc.set(val, count+1);
}else{
acc.set(val, 1);
};
return acc;
}, new Map());
const arr = Array.from(map).sort((a, b) => b[1] - a[1]);
let newString = '';
for(let i = 0, count = 0; i < str.length;){
if(!arr[count][1]){
arr.splice(count, 1);
continue;
};
newString += arr[count][0];
arr[count][1]--;
i++;
count = i % num;
};
return newString;
};
console.log(equalDistance(str, 4));
console.log(equalDistance('abb', 2));
console.log(equalDistance('aacbbc', 3));
আউটপুট
কনসোলে আউটপুট হবে:
sceasceosri bab acbacb