Anagram

Hello coders, today I have solved a DSA problem on string manipulation that involves finding anagrams. An anagram is a word or phrase formed by rearranging the letters of another word or phrase, typically using all the original letters exactly once. For example, "silent" is an anagram of "listen". Here is the problem statement and my solution code for it. I hope you find it easy to understand.

Problem: 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. For example, act and tac are an anagram of each other.

Note:-

  • If the strings are anagrams you have to return True or else return False

  • |s| represents the length of string s.

Example 1:

Input:a = geeksforgeeks, b = forgeeksgeeks
Output: YES
Explanation: Both the string have same characters with
        same frequency. So, both are anagrams.

Example 2:

Input:a = allergy, b = allergic
Output: NO
Explanation: Characters in both the strings are 
        not same, so they are not anagrams.

Your Task:
You don't need to read input or print anything. Your task is to complete the function isAnagram() which takes the string a and string b as input parameter and check if the two strings are an anagram of each other. The function returns true if the strings are anagram else it returns false.

**Expected Time Complexity:**O(|a|+|b|).
Expected Auxiliary Space: O(Number of distinct characters).

Constraints:
1 ≤ |a|,|b| ≤ 105

Solution :

 public static boolean isAnagram(String a,String b)
    {

       char[] c = a.toCharArray();
       char[] d =b.toCharArray();

        Arrays.sort(c);
        Arrays.sort(d);

        if(Arrays.equals(c,d))
            return true;
        else
            return false;

    }

Output :

Input:a = geeksforgeeks, b = forgeeksgeeks
Output: YES
Explanation: Both the string have same characters with
        same frequency. So, both are anagrams.

Did you find this article valuable?

Support DHANRAJ NIKAM by becoming a sponsor. Any amount is appreciated!