Here's the code to check if two strings are anagrams to each other or not...But I personally feel this could be more efficient. So please do comment if you find efficient solution. This program works for every test cases.
1 #include<iostream> 2 using namespace std; 3 bool anagram(char*,char*); 4 int main() 5 { 6 char s1[100],s2[100]; 7 cout<<"Enter string 1: "; 8 gets(s1); 9 cout<<"Enter string 2: "; 10 gets(s2); 11 if(anagram(s1,s2)) 12 { 13 cout<<"The two strings are anagrams! "; 14 } 15 else 16 { 17 cout<<"The two strings are not anagrams! "; 18 } 19 return 0; 20 } 21 bool anagram(char*s,char*t) 22 { 23 int l1=strlen(s); 24 int l2=strlen(t); 25 if(l1!=l2) 26 return false; 27 int count1[256]={0},i,count2[256]={0}; 28 for(i=0;s[i]&&t[i];i++) 29 { 30 count1[s[i]]++; 31 count2[t[i]]++; 32 } 33 for(i=0;i<256;i++) 34 { 35 if(count1[i]!=count2[i]) 36 return false; 37 } 38 return true; 39 }
No comments:
Post a Comment