Skip to content

Commit ccd7b0d

Browse files
committed
fix: valid-anagram
1 parent 95d5f23 commit ccd7b0d

File tree

1 file changed

+10
-13
lines changed

1 file changed

+10
-13
lines changed

valid-anagram/taekwon-dev.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,24 @@
11
/**
2-
* 시간 복잡도: O(NlogN)
3-
* - Arrays.sort() > Dual-Pivot QuickSort
4-
*
5-
* 공간 복잡도: O(N)
6-
*
72
* 처음 문제를 보고 들었던 생각: 정렬 시켜서 같으면 anagram?
8-
* -> 아, 그러면 등장한 문자의 빈도수가 같네?
9-
* -> 결국 26 사이즈가 인풋에 영향을 받지 않으므로 공간 복잡도를 O(1)로 개선할 수 있고,
10-
* -> 시간 복잡도도 O(N)으로 개선할 수 있겠다.
3+
* 근데, 정렬 시켜서 같다면, 결국 문자열을 구성하는 각 문자의 빈도수가 같다.
4+
*
5+
* 시간 복잡도: O(N)
6+
* 공간 복잡도: O(1)
117
*/
128
class Solution {
139
public boolean isAnagram(String s, String t) {
1410
if (s.length() != t.length()) return false;
1511

1612
int[] charCount = new int[26];
1713

18-
for (char c : s.toCharArray()) {
19-
charCount[c - 'a']++;
14+
for (int i = 0; i < s.length(); i++) {
15+
charCount[s.charAt(i) - 'a']++;
2016
}
2117

22-
for (char c : t.toCharArray()) {
23-
charCount[c - 'a']--;
24-
if (charCount[c - 'a'] < 0) {
18+
for (int i = 0; i < t.length(); i++) {
19+
int index = t.charAt(i) - 'a';
20+
charCount[index]--;
21+
if (charCount[index] < 0) {
2522
return false;
2623
}
2724
}

0 commit comments

Comments
 (0)