From 5d2e968fac95fe465054a7b3e1da7212351995e6 Mon Sep 17 00:00:00 2001 From: Kiran <59613353+bishtkiran@users.noreply.github.com> Date: Fri, 21 Oct 2022 09:59:33 +0530 Subject: [PATCH] Anagram in java Added code to check if two strings are anagrams of each other. --- Java/Anagram.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Java/Anagram.java diff --git a/Java/Anagram.java b/Java/Anagram.java new file mode 100644 index 0000000..df203fa --- /dev/null +++ b/Java/Anagram.java @@ -0,0 +1,49 @@ +// Check if two strings are anagrams of each other + +import java.util.*; + +public class Anagram { + public static void main(String[] args){ + String firstString = "race"; + String secondString = "care"; + + if (isAnagram(firstString, secondString)) + System.out.print("Given strings are anagrams of each other"); + else + System.out.print("Given strings are not anagrams of each other"); + } + + public static boolean isAnagram(String firstString, String secondString){ + if (firstString.length() != secondString.length()) + return false; + + HashMap map = new HashMap<>(); + + for (int i = 0; i < firstString.length(); i++) { + if (map.containsKey(firstString.charAt(i))) { + map.put(firstString.charAt(i), + map.get(firstString.charAt(i)) + 1); + } + else { + map.put(firstString.charAt(i), 1); + } + } + + for (int i = 0; i < secondString.length(); i++) { + if (map.containsKey(secondString.charAt(i))) { + map.put(secondString.charAt(i), + map.get(secondString.charAt(i)) - 1); + } + else { + return false; + } + } + Set keys = map.keySet(); + for (Character key : keys) { + if (map.get(key) != 0) { + return false; + } + } + return true; + } +}