HackerRank Strings: Making Anagrams problem solution YASH PAL, 31 July 20246 February 2026 In this HackerRank Strings: Making Anagrams Interview preparation kit problem solution, A student is taking a cryptography class and has found anagrams to be very useful. Two strings are anagrams of each other if the first string’s letters can be rearranged to form the second string. In other words, both strings must contain the same exact letters in the same exact frequency. For example, bacdc and dcbac are anagrams, but bacdc and dcbad are not.The student decides on an encryption scheme that involves two large strings. The encryption is dependent on the minimum number of character deletions required to make the two strings anagrams. Determine this number.Given two strings, a and b, that may or may not be of the same length, determine the minimum number of character deletions required to make a and b anagrams. Any characters can be deleted from either of the strings.HackerRank Strings: Making Anagrams problem solution in Python.import math def number_needed(a, b): aString = [0]*26 for ch in a: aString[ord(ch)-97] += 1 bString = [0]*26 for ch in b: bString[ord(ch)-97] += 1 deletions = 0 for i in range(len(aString)): deletions += math.fabs(aString[i]-bString[i]) return int(deletions) a = input().strip() b = input().strip() print(number_needed(a, b))Strings: Making Anagrams problem solution in Java.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) { Map<Character, Integer> map = new HashMap<>(); int count = 0; for(int i=0;i<first.length();i++){ if(map.get(first.charAt(i)) == null){ map.put(first.charAt(i), 1); } else { int cur = map.get(first.charAt(i)); map.put(first.charAt(i), cur+1); } } for(int i=0;i<second.length();i++){ if(map.containsKey(second.charAt(i))){ int cur = map.get(second.charAt(i)); if(cur == 1){ map.remove(second.charAt(i)); } else { map.put(second.charAt(i), cur-1); } } else { count++; } } for(Integer i: map.values()){ count=count+i; } return count; } 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)); } }Problem solution in C++ programming.#include <map> #include <set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #include <string> #include <bitset> #include <cstdio> #include <limits> #include <vector> #include <climits> #include <cstring> #include <cstdlib> #include <fstream> #include <numeric> #include <sstream> #include <iostream> #include <algorithm> #include <unordered_map> using namespace std; int number_needed(string a, string b) { int i,c[26]={0},c1[26]={}; for(i=0;i<a.length();i++) { if(97<=a[i]&&a[i]<=123) c[a[i]-97]++; } for(i=0;i<b.length();i++) { if(97<=b[i]&&b[i]<=123) c1[b[i]-97]++; } int s=0; for(i=0;i<26;i++) { s=s+abs(c[i]-c1[i]); } return (s); } int main(){ string a; cin >> a; string b; cin >> b; cout << number_needed(a, b) << endl; return 0; }Problem solution in C programming.#include <stdio.h> #include <stdint.h> #include <string.h> #include <math.h> int main() { #ifdef _DEBUG char FNAME[250]; strcpy(FNAME, __FILE__); strcpy(strchr(FNAME, '.'), ".txt"); freopen(FNAME, "rt", stdin); #endif char a[10001], b[10001]; scanf("%s %s", a, b); char abc['z' + 1]; memset(abc, 0, sizeof abc); for (char *ptr = a; *ptr != ''; ++ptr) abc[*ptr]++; for (char *ptr = b; *ptr != ''; ++ptr) abc[*ptr]--; int changes = 0; for (int c = 'a'; c <= 'z'; ++c) changes += abs(abc[c]); printf("%d", changes); }Problem solution in JavaScript programming.process.stdin.resume(); process.stdin.setEncoding('ascii'); var input_stdin = ""; var input_stdin_array = ""; var input_currentline = 0; process.stdin.on('data', function (data) { input_stdin += data; }); process.stdin.on('end', function () { input_stdin_array = input_stdin.split("n"); main(); }); function readLine() { return input_stdin_array[input_currentline++]; } /////////////// ignore above this line //////////////////// function main() { var a = readLine(); var b = readLine(); var aCount = getCharCount(a); var bCount = getCharCount(b); var deleteCount = 0; for(var i = 0; i < aCount.length; i++) { var min = Math.min(aCount[i], bCount[i]); var max = Math.max(aCount[i], bCount[i]); deleteCount += (max - min) } console.log(deleteCount); } function getCharCount(str) { var count = new Array(26); count.fill(0); for(var i = 0; i < str.length; i++) { var index = str[i].charCodeAt(0) - 97; count[index] = count[index] + 1; } return count; } coding problems solutions Hackerrank Problems Solutions interview prepration kit HackerRank