File tree Expand file tree Collapse file tree 1 file changed +14
-13
lines changed Expand file tree Collapse file tree 1 file changed +14
-13
lines changed Original file line number Diff line number Diff line change 2
2
import java .util .Map ;
3
3
4
4
public class Solution {
5
-
5
+ /*
6
+ time complexity: O(n)
7
+ space complexity: O(1)
8
+ */
6
9
public boolean isAnagram (String s , String t ) {
10
+ if (s .length () != t .length ()) return false ;
7
11
8
- Map <Character , Integer > charMap = new HashMap <>();
12
+ Map <Character , Integer > sFrequency = new HashMap <>();
9
13
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 );
13
16
}
14
17
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
+ }
18
22
}
19
23
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 ;
24
26
}
25
27
26
28
return true ;
27
-
28
29
}
29
30
}
You can’t perform that action at this time.
0 commit comments