import java.util.*;
class Anagram{
public static void main(String args[]){
String s1 = "abcb";
String s2 = "bbac";
boolean output = anagram(s1,s2);
System.out.println(output);
}
private static boolean anagram(String a, String b){
if ((a == null || b == null)
|| (a.length() != b.length())
|| (a.isEmpty())) return false;
int len = a.length();
Map<Character, Integer> fmap = new HashMap<Character, Integer>();
for(int i=0; i<len; i++){
char key = a.charAt(i);
Integer value = fmap.get(key);
if(value == null) fmap.put(key,1);
else fmap.put(key,value+1);
}
//Check string s2 frequency in fmap
for(int i=0; i<len; i++){
char key = b.charAt(i);
Integer value = fmap.get(key);
if(value == null) return false;
else{
if(value == 1) fmap.remove(key);
else fmap.put(key,value-1);
}
}
return fmap.size() == 0;
}
Saturday, January 20, 2018
Find if two given Strings are Anagrams
Subscribe to:
Post Comments (Atom)
looks good.
ReplyDelete