Skip to content

Commit 47e4f78

Browse files
committed
refactor: valid anagram solution
1 parent 62ff83b commit 47e4f78

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

valid-anagram/JEONGBEOMKO.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,29 @@
22
import java.util.Map;
33

44
public class Solution {
5-
5+
/*
6+
time complexity: O(n)
7+
space complexity: O(1)
8+
*/
69
public boolean isAnagram(String s, String t) {
10+
if (s.length() != t.length()) return false;
711

8-
Map<Character, Integer> charMap = new HashMap<>();
12+
Map<Character, Integer> sFrequency = new HashMap<>();
913

10-
char[] sArr = s.toCharArray();
11-
for (char sa : sArr) {
12-
charMap.put(sa, charMap.getOrDefault(sa, 0) + 1);
14+
for (int i = 0; i < s.length(); i++) {
15+
sFrequency.put(s.charAt(i), sFrequency.getOrDefault(s.charAt(i), 0) + 1);
1316
}
1417

15-
char[] tArr = t.toCharArray();
16-
for (char ta : tArr) {
17-
charMap.put(ta, charMap.getOrDefault(ta, 0) - 1);
18+
for (int i = 0; i < t.length(); i++) {
19+
if (sFrequency.getOrDefault(t.charAt(i), 0) != 0) {
20+
sFrequency.put(t.charAt(i), sFrequency.get(t.charAt(i)) - 1);
21+
}
1822
}
1923

20-
for (int cnt : charMap.values()) {
21-
if (cnt != 0) {
22-
return false;
23-
}
24+
for (int count : sFrequency.values()) {
25+
if (count != 0) return false;
2426
}
2527

2628
return true;
27-
2829
}
2930
}

0 commit comments

Comments
 (0)