This is my solution to challenge “Strings: Making Anagrams” on HackerRank. Click here to see the challenge.
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static int numberNeeded(String first, String second) {
int[] charCountsForFirstString = getCharCounts(first);
int[] charCountsForSecondstring = getCharCounts(second);
return getDifference(charCountsForFirstString,charCountsForSecondstring);
}
public static int getDifference(int[] array1, int[] array2){
if(array1.length != array2.length){
return -1;
}
int diff = 0;
for (int i=0; i < array1.length; i++){
diff += Math.abs(array1[i] - array2[i]);
}
return diff;
}
public static int[] getCharCounts(String word){
int[] charCounts = new int[26];
for (int i =0;i < word.length() ; i++){
int offset = (int) 'a';
int n = word.charAt(i) - offset; // it will represent A as 0, B as 2 and so on.
charCounts[n]++;
}
return charCounts;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String a = in.next();
String b = in.next();
System.out.println(numberNeeded(a, b));
}
}