दो स्ट्रिंग्स 'a' और 'b' दी गई हैं, हमें जांचना है कि क्या वे एक-दूसरे के एनाग्राम हैं या नहीं और True/False लौटाना है। उदाहरण के लिए,
इनपुट-1:
String a= "india" String b= "nidia"
आउटपुट:
True
व्याख्या: चूंकि दी गई स्ट्रिंग 'b' में स्ट्रिंग 'a' के सभी वर्ण हैं इसलिए हम True लौटाएंगे।
इनपुट-2:
String a= "hackathon" String b= "achcthoon"
आउटपुट:
False
व्याख्या: चूंकि दी गई स्ट्रिंग 'b' में स्ट्रिंग 'a' के सभी वर्ण नहीं हैं इसलिए हम False लौटाएंगे।
इस समस्या को हल करने के लिए उपयोग किया गया दृष्टिकोण
दी गई स्ट्रिंग्स 'a' और 'b' में, हम जांचेंगे कि क्या वे समान लंबाई की हैं और फिर हम स्ट्रिंग्स को क्रमबद्ध करेंगे। यदि दोनों स्ट्रिंग्स समान हैं, तो "True" लौटाएं; यदि नहीं, तो "False" प्रिंट करें।
- दो स्ट्रिंग्स 'a' और 'b' इनपुट लें
- एक फ़ंक्शन checkStringAnagrams(string a, string b) जो true लौटाएगा यदि वे एक-दूसरे के एनाग्राम हैं अन्यथा false।
- दोनों स्ट्रिंग्स की लंबाई ढूंढें और जांचें कि क्या वे समान हैं।
- अब दोनों स्ट्रिंग्स को लेक्सिकोग्राफिक क्रम में क्रमबद्ध करें और जांचें कि क्या वे समान हैं या नहीं।
- तदनुसार true या false लौटाएं।
उदाहरण
function checkStringsAnagram(a, b) {
let len1 = a.length;
let len2 = b.length;
if(len1 !== len2){
console.log('Invalid Input');
return
}
let str1 = a.split('').sort().join('');
let str2 = b.split('').sort().join('');
if(str1 === str2){
console.log("True");
} else {
console.log("False");
}
}
checkStringsAnagram("indian","ndiani")
आउटपुट
उपरोक्त कोड चलाने से आउटपुट उत्पन्न होगा:
True
चूंकि स्ट्रिंग 'indian' में अन्य स्ट्रिंग 'ndiani' के समान वर्णों का समूह है, दोनों एक-दूसरे के एनाग्राम हैं, और इसलिए, हम True लौटाएंगे।