Hello Programmers/Coders, Today we are going to share solutions of Programming problems of HackerRank of Programming Language Java . At Each Problem with Successful submission with all Test Cases Passed, you will get an score or marks. And after solving maximum problems, you will be getting stars. This will highlight your profile to the recruiters.
In this post, you will find the solution for Java Anagrams-HackerRank Problem. We are providing the correct and tested solutions of coding problems present on HackerRank. If you are not able to solve any problem, then you can take help from our Blog/website.
Use “Ctrl+F” To Find Any Questions Answer. & For Mobile User, You Just Need To Click On Three dots In Your Browser & You Will Get A “Find” Option There. Use These Option to Get Any Random Questions Answer.
Introduction To Java
JAVA was developed by James Gosling at Sun Microsystems Inc in the year 1991, later acquired by Oracle Corporation. It is a simple programming language. Java makes writing, compiling, and debugging programming easy. It helps to create reusable code and modular programs.
Java is a class-based, object-oriented programming language and is designed to have as few implementation dependencies as possible. A general-purpose programming language made for developers to write once run anywhere that is compiled Java code can run on all platforms that support Java. Java applications are compiled to byte code that can run on any Java Virtual Machine. The syntax of Java is similar to c/c++.
Link for the Problem – Java Anagrams – Hacker Rank Solution
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" ); } }