본문 바로가기
Algorithm

Java - 두 문자열이 Anagram 관계인가

by ByteBridge 2017. 5. 28.
반응형


public static boolean isAnagram(String s1,String s2){
if(s1.length() != s2.length()) return false;
HashMap<Character,Integer> hm = new HashMap<>();
//s1
for(char c:s1.toCharArray()){
// 이미 글자가 있을때
if(hm.containsKey(c)) hm.put(c,hm.get(c) + 1);
else hm.put(c,1);
}
for(char c:s2.toCharArray()){
// 키가 없을 경우 -> s1 에는 포함되어있지만 s2에는 없다 라는것은 애너그램 관계가 아니다
if(!hm.containsKey(c)) return false;
// 글자가 없을 경우
if(hm.get(c) == 0) return false;

hm.put(c,hm.get(c) - 1);
}
return true;
}


반응형

'Algorithm' 카테고리의 다른 글

Java - WordCount  (0) 2017.05.28
Java - Runlength 문자열 압축  (0) 2017.05.28
Java - UniqChar Implement  (0) 2017.05.28
Java - Convert String to Integer  (0) 2017.05.28
Java String Clsss method  (0) 2017.05.28