반응형
https://leetcode.com/problems/valid-anagram/
class Solution {
public boolean isAnagram(String s, String t) {
HashMap<Character, Integer> hm = new HashMap<>();
boolean answer = true;
// s의 캐릭터를 hm에 담는다.
// key에 없으면 1로 디폴트 세팅, 있으면 값에 +1
for(int i = 0; i < s.length(); i++){
if(hm.containsKey(s.charAt(i))){
System.out.print(hm.get(s.charAt(i)));
hm.put(s.charAt(i), hm.get(s.charAt(i))+1);
} else {
hm.put(s.charAt(i), 1);
}
}
/ t의 캐릭터가 hm에 없으면 바로 false,
// t의 캐릭터가 hm에 있지만 0일때(모두 체크했는데 t에 더 남아있을 때) 바로 false
// 그 외 정상 케이스는 값에서 -1
for(int i = 0; i < t.length(); i++){
if(!hm.containsKey(t.charAt(i))){
answer = false;
return answer;
} else {
if(hm.get(t.charAt(i)) == 0){
answer = false;
return answer;
} else {
hm.put(t.charAt(i), hm.get(t.charAt(i))-1);
}
}
}
// hm의 value가 모두 0(모든 철자가 한번씩만 등장)일때만 anagram true
for (Integer val : hm.values()) {
if(val != 0){
answer = false;
return answer;
}
}
return answer;
}
}
반응형
'Programming > Coding Test' 카테고리의 다른 글
[코드트리/문자열] 미는 횟수 (feat.Java) (0) | 2023.08.21 |
---|---|
[Leetcode/Hashmap] 217. Contains Duplicate (feat.Java) (0) | 2023.07.10 |
[Leetcode/Hashmap] Two sum (feat. Java) (0) | 2023.07.10 |
코딩 인터뷰에 등장하는 Top 6 개념 (0) | 2023.07.08 |
[종만북] 보글 게임 with Java (0) | 2020.10.13 |