ধরুন, আমাদের কাছে স্ট্রিংগুলির একটি অ্যারে রয়েছে যাতে এইরকম কিছু নাম রয়েছে -
const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];
এবং এই মত অক্ষর একটি র্যান্ডম স্ট্রিং -
const str = 'lsoaakjm';
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা দুটি আর্গুমেন্টের মতো একটি অ্যারে এবং স্ট্রিং নেয়৷
তারপর ফাংশন, অ্যারের প্রতিটি উপাদানের জন্য পরীক্ষা করা উচিত যে নির্দিষ্ট উপাদানটি দ্বিতীয় যুক্তি হিসাবে সরবরাহ করা স্ট্রিং থেকে সম্পূর্ণরূপে গঠিত হতে পারে কিনা৷
যদি এই শর্তটি অ্যারের কোনো উপাদানের জন্য সন্তুষ্ট হয়, তাহলে আমাদের সেই উপাদানটি ফেরত দেওয়া উচিত অন্যথায় আমাদের একটি খালি স্ট্রিং ফেরত দেওয়া উচিত।
উদাহরণ
নিম্নলিখিত কোড -
const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];
const str = 'lsoaakjm';
const initialise = (str = '', map) => {
for(let i = 0; i < str.length; i++){
map[str[i]] = (map[str[i]] || 0) + 1;
};
};
const deleteAll = map => {
for(key in map){
delete map[key];
};
};
const checkForFormation = (arr = [], str = '') => {
const map = {};
for(let i = 0; i < arr.length; i++){
const el = arr[i].toLowerCase();
initialise(str, map);
let j;
for(j = 0; j < el.length; j++){
const char = el[j];
if(!map[char]){
break;
}else{
map[char]--;
}
};
if(j === el.length){
return arr[i];
};
deleteAll(map);
}
return '';
};
console.log(checkForFormation(arr, str)); আউটপুট
নিম্নোক্ত কনসোল আউটপুট -
Kamal