# Check whether two strings are anagram of each other

Given two strings a and b consisting of lowercase characters. The task is to check whether two given strings are an anagram of each other or not. An anagram of a string is another string that contains the same characters, only the order of characters can be different.

**Example 1:**

Input:

a = codemummy, b = mummycode

Output: 1

Explanation: Both the string have same

characters with same frequency. So,

both are anagrams.

**Example 2:**

Input:

a = allergy, b = allergic

Output: 0

Explanation: Characters in both the strings

are not same, so they are not anagrams.

**method 1 :**

use sorting:

sort both the string now check if the sorted strings are equal if they are equal return 1, else return 0.

**c++ implementation:**

bool isAnagram(string a, string b) { sort(a.begin(),a.end()); sort(b.begin(),b.end()); if(a==b) return 1; else return 0; }

**Time Complexity:**O(nlogn)

**space Complexity:**O(n)

**method 2 :**

take one h[] array. increment the value in h[] array for characters in string a and decrement for characters in string b. Finally, if all count values are 0, then the two strings are anagram of each other.

**c++ implementation:**

bool isAnagram(string a, string b){ int n=a.length(); int m=b.length(); if(n!=m) return 0; int h[26]={0}; for(int i=0;i<n;i++) h[a[i]-'a']++; for(int i=0;i<n;i++) h[b[i]-'a']--; for(int i=0;i<26;i++) { if(h[i]!=0) return 0; } return 1; }

**Time Complexity:**O(n)

**space Complexity:**extra space for h[] array.

**method 3 :**

**c++ implementation:**

bool isAnagram(string a, string d){ if (a.size() != d.size()) return false; int count = 0; // Take sum of all characters of first String for (int i = 0; i < a.size(); i++) { count += a[i]; } // Subtract the Value of all the characters of second // String for (int i = 0; i < d.size(); i++) { count -= d[i]; } // If Count = 0 then they are anagram // If count > 0 or count < 0 then they are not anagram return (count == 0); }

**Time Complexity:**O(n)

**space Complexity:**O(1)