एनाग्राम स्ट्रिंग्स वे हैं जिनमें सभी कैरेक्टर्स दूसरी स्ट्रिंग में समान संख्या में बार आते हैं, जिन्हें हम एनाग्राम कहते हैं।
एक उपयोगकर्ता दो स्ट्रिंग्स दर्ज करता है। हमें गिनना होगा कि प्रत्येक अक्षर ('a' से 'z') उनमें कितनी बार आता है और फिर उनकी संबंधित गिनती की तुलना करें। एक स्ट्रिंग में एक वर्णमाला की आवृत्ति यह है कि वह उसमें कितनी बार आती है।
यदि दो स्ट्रिंग्स में किसी विशेष वर्णमाला की आवृत्ति की गिनती समान है, तो हम कह सकते हैं कि वे दो स्ट्रिंग्स एनाग्राम हैं।
उदाहरण 1
स्ट्रिंग 1 - abcd
स्ट्रिंग 2 - bdac
इन दो स्ट्रिंग्स में समान अक्षर हैं जो एक बार आते हैं। तो, ये दो स्ट्रिंग्स एनाग्राम हैं।
उदाहरण 2
स्ट्रिंग 1 - programming
स्ट्रिंग 2 - gramming
आउटपुट - The strings are not anagrams.
उदाहरण
निम्नलिखित C प्रोग्राम एक एनाग्राम के लिए है:
#include <stdio.h>
int check_anagram(char [], char []);
int main(){
char a[1000], b[1000];
printf("Enter two strings\n");
gets(a);
gets(b);
if(check_anagram(a, b))
printf("The strings are anagrams.\n");
else
printf("The strings aren't anagrams.\n");
return 0;
}
int check_anagram(char a[], char b[]){
int first[26] = {0}, second[26] = {0}, c = 0;
// Calculating frequency of characters of the first string
while(a[c] != '\0'){
first[a[c] - 'a']++;
c++;
}
c = 0;
while(b[c] != '\0'){
second[b[c] - 'a']++;
c++;
}
// Comparing the frequency of characters
for(c = 0; c < 26; c++)
if(first[c] != second[c])
return 0;
return 1;
}
आउटपुट
Run 1: Enter two strings abcdef deabcf The strings are anagrams. Run 2: Enter two strings tutorials Point The strings aren't anagrams.