Hello coders, In this post, you will learn how to solve Java Anagrams Hacker Rank Solution. This problem is a part of the Java programming series.
One more thing to add, don’t straight away look for the solutions, first try to solve the problems by yourself. If you find any difficulty after trying several times, then look for the solutions.

Java Anagrams Hacker Rank Solution
Problem :
Two strings, a and b, 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 a and b are case-insensitive anagrams, return true. Otherwise, return false.
Input Format
The first line contains a string a.
The second line contains a string b.
Constraints
- Strings a and b consist of English alphabetic characters.
- The comparison should NOT be case sensitive.
Sample Input 0
anagram margana
Sample Output 0
Anagrams
Explanation 0
Character | Frequency: anagram | Frequency: margana |
---|---|---|
A or a | 3 | 3 |
G or g | 1 | 1 |
N or n | 1 | 1 |
M or m | 1 | 1 |
R or r | 1 | 1 |
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
Character | Frequency: anagramm | Frequency: marganaa |
---|---|---|
A or a | 3 | 4 |
G or g | 1 | 1 |
N or n | 1 | 1 |
M or m | 2 | 1 |
R or r | 1 | 1 |
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
Character | Frequency: Hello | Frequency: hello |
---|---|---|
E or e | 1 | 1 |
H or h | 1 | 1 |
L or l | 2 | 2 |
O or o | 1 | 1 |
The two strings contain all the same letters in the same frequencies, so we print “Anagrams”.
Java Anagrams Hacker Rank Solution
mport java.io.*; import java.util.*; public class Solution { static boolean isAnagram(String a, String b) { if ((a == null || b == null) || (a.length() != b.length())) { return false; } final char[] ARRAY_A = a.toUpperCase().toCharArray(); final Map map = new HashMap<>(); for (int i = 0; i < ARRAY_A.length; i ++) { if (map.containsKey(ARRAY_A[i])) { map.put(ARRAY_A[i], (map.get(ARRAY_A[i]) + 1)); } else { map.put(ARRAY_A[i], 1); } } final char[] ARRAY_B = b.toUpperCase().toCharArray(); for (int i = 0; i < ARRAY_A.length; i ++) { if (map.containsKey(ARRAY_B[i])) { Integer count = map.get(ARRAY_B[i]); if (count == 0) { return false; } else { count --; map.put(ARRAY_B[i], count); } } else { return false; } } return true; } public static void main(String[] args) { Scanner scan = new Scanner(System.in); String a = scan.next(); String b = scan.next(); scan.close(); boolean ret = isAnagram(a, b); System.out.println( (ret) ? "Anagrams" : "Not Anagrams" ); } }
Disclaimer: The above Problem (Java Anagrams) is generated by Hackerrank but the Solution is Provided by Chase2Learn. This tutorial is only for Educational and Learning purposes. Authority if any of the queries regarding this post or website fill the following contact form thank you.