문제
- s와 t가 주어졌을때, 아나그램일 경우 true, 아니면 false 반환
public class Test {
public static void main(String[] args) {
System.out.println(isAnagram("anagram", "nagaram"));
System.out.println(isAnagram("rat", "car"));
}
public static boolean isAnagram(String s, String t) {
}
}
결과 및 풀이
public static boolean isAnagram(String s, String t) {
if (s.length() != t.length()) {
return false;
}
Map<Character, Integer> anagramBucket = new HashMap<>();
for (char c : s.toCharArray()) {
int count = anagramBucket.getOrDefault(c, 0) + 1;
anagramBucket.put(c, count);
}
for (char c : t.toCharArray()) {
int count = anagramBucket.getOrDefault(c, 0);
if (count == 0) {
return false;
}
anagramBucket.put(c, count - 1);
}
return true;
}
배웠다