Skip to content

Commit d75317c

Browse files
committed
fix: valid-anagram
1 parent 800725b commit d75317c

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

valid-anagram/taekwon-dev.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,28 @@
44
*
55
* 공간 복잡도: O(N)
66
*
7+
* 처음 문제를 보고 들었던 생각: 정렬 시켜서 같으면 anagram?
8+
* -> 아, 그러면 등장한 문자의 빈도수가 같네?
9+
* -> 결국 26 사이즈가 인풋에 영향을 받지 않으므로 공간 복잡도를 O(1)로 개선할 수 있고,
10+
* -> 시간 복잡도도 O(N)으로 개선할 수 있겠다.
711
*/
812
class Solution {
913
public boolean isAnagram(String s, String t) {
10-
char[] sChars = s.toCharArray();
11-
char[] tChars = t.toCharArray();
14+
if (s.length() != t.length()) return false;
1215

13-
Arrays.sort(sChars);
14-
Arrays.sort(tChars);
16+
int[] charCount = new int[26];
1517

16-
return Arrays.equals(sChars, tChars);
18+
for (char c : s.toCharArray()) {
19+
charCount[c - 'a']++;
20+
}
21+
22+
for (char c : t.toCharArray()) {
23+
charCount[c - 'a']--;
24+
if (charCount[c - 'a'] < 0) {
25+
return false;
26+
}
27+
}
28+
29+
return true;
1730
}
1831
}

0 commit comments

Comments
 (0)