एनाग्राम:
दो शब्द या वाक्यांश जो एक-दूसरे के अक्षरों को अलग क्रम में व्यवस्थित करके बनाए जा सकते हैं, एक-दूसरे के एनाग्राम कहलाते हैं, जैसे rat और tar।
हमें एक JavaScript फ़ंक्शन लिखना है जो स्ट्रिंग्स की एक सरणी लेता है जिसमें कुछ एनाग्राम स्ट्रिंग्स हो सकती हैं। फ़ंक्शन को सभी एनाग्राम को अलग-अलग उप-सरणियों में समूहित करना चाहिए और इस प्रकार बनी नई सरणी को लौटाना चाहिए।
उदाहरण
यदि इनपुट सरणी है:
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' ] ]