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

Last updated