Checking if Strings are Anagrams

Strings which are composed of the same alphabets and their frequency are known as anagrams of each other.

Procedure :

  • Take the two strings as input
  • Create an hash array of size 26 and initialise it with 0.
  • For each character the first string, increment the corresponding index in the hash array.
  • For each character in the second string, decrement the corresponding index in the hash array.
  • Loop through the hash array. If any of the element is not 0, return false. Else, return true.

C Function :

int checkAnagram(char a[], char b[]) {
​
// Create and initialise hash array with 0.
int h[26] = {0};
​
// Increment for first string
for (int i = 0; a[i] != '\0'; i++) {
h[a[i]-97]++;
}
​
// Decrement for second string
for (int i = 0; b[i] != '\0'; i++) {
h[b[i]-97]--;
}
// If any element is not zero, it is not an anagram.
for (int i = 0; i < 26; i++) {
if (h[i] != 0) {
return 0;
}
}
return 1;
}
Contributed by Nitin Ranganath