Sunday, February 6, 2022

Java Anagrams HackeRank

 Two strings,  and , are called anagrams if they contain all the same characters in the same frequencies. For this challenge, the test is not case-sensitive. For example, the anagrams of CAT are CAT, ACT, tac, TCA, aTC, and CtA.

Function Description

Complete the isAnagram function in the editor.

isAnagram has the following parameters:

  • string a: the first string
  • string b: the second string

Returns

  • boolean: If  and  are case-insensitive anagrams, return true. Otherwise, return false.

Input Format

The first line contains a string .
The second line contains a string .

Constraints

  • Strings  and  consist of English alphabetic characters.
  • The comparison should NOT be case sensitive.

Sample Input 0

anagram
margana

Sample Output 0

Anagrams

Explanation 0

CharacterFrequency: anagramFrequency: margana
A or a33
G or g11
N or n11
M or m11
R or r11

The two strings contain all the same letters in the same frequencies, so we print "Anagrams".

Sample Input 1

anagramm
marganaa

Sample Output 1

Not Anagrams

Explanation 1

CharacterFrequency: anagrammFrequency: marganaa
A or a34
G or g11
N or n11
M or m21
R or r11

The two strings don't contain the same number of a's and m's, so we print "Not Anagrams".

Sample Input 2

Hello
hello

Sample Output 2

Anagrams

Explanation 2

CharacterFrequency: HelloFrequency: hello
E or e11
H or h11
L or l22
O or o11

The two strings contain all the same letters in the same frequencies, so we print "Anagrams".

Answer:

static boolean isAnagram(String a, String b) {
        // Complete the function
        a = a.toLowerCase();
        b = b.toLowerCase();
        boolean x=true;
        int[] al = new int[256];
        
        for(char c : a.toCharArray()){
           int i=(int) c;
           al[i]++;
        }
        for(char c : b.toCharArray())
        {
            int i = (int) c;
            al[i]--;
        }
        
        for (int i=0;i<256;i++){
     if(al[i]!=0){
         x=false;
         break;
    }
}

return x;
    }

No comments:

Post a Comment

Java Regex

You are updating the username policy on your company's internal networking platform. According to the policy, a username is considered v...