অ্যানাগ্রাম (Anagrams):
দুটি শব্দ বা বাক্যাংশ যেগুলো একে অপরের অক্ষরগুলো পুনর্বিন্যাস করে তৈরি করা যায়, সেগুলোকে একে অপরের অ্যানাগ্রাম বলে। যেমন rat এবং tar।
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং অ্যারে গ্রহণ করবে যেটে কিছু অ্যানাগ্রাম শব্দ থাকতে পারে। ফাংশনটি সব অ্যানাগ্রামগুলো আলাদা সাবঅ্যারে হিসেবে গোষ্ঠীবদ্ধ করে নতুন অ্যারে রিটার্ন করবে।
উদাহরণস্বরূপ —
ইনপুট অ্যারে যদি হয় —
const arr = ['rat', 'jar', 'tar', 'raj','ram', 'arm', 'mar', 'art'];
তাহলে আউটপুট অ্যারে হবে —
const output = [ ['rat', 'tar', 'art'], ['jar', 'raj'], ['ram', 'arm', 'mar'] ];
উদাহরণ
নিচের কোডটি দেখুন:
const arr = ['rat', 'jar', 'tar', 'raj','ram', 'arm', 'mar', 'art'];
const groupSimilarWords = (arr = []) => {
if (arr.length === 0){
return arr;
};
const map = new Map();
for(let str of arr){
let sorted = [...str];
sorted.sort();
sorted = sorted.join('');
if(map.has(sorted)){
map.get(sorted).push(str);
}else{
map.set(sorted, [str])
};
};
return [...map.values()];
};
console.log(groupSimilarWords(arr));
আউটপুট
কনসোল আউটপুট:
[ [ 'rat', 'tar', 'art' ], [ 'jar', 'raj' ], [ 'ram', 'arm', 'mar' ] ]