LeetCode: Valid Anagram

LeetCode: Valid Anagram

Given two strings s and t, write a function to determine if t is an anagram of s.

For example,

s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.

Note:

You may assume the string contains only lowercase alphabets.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Solution {
public boolean isAnagram(String s, String t) {
if (s.length() != t.length()) {
return false;
}

Map<Character, Integer> map = new HashMap<>();

for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int count = 1;
if (map.containsKey(c)) {
count += map.get(c);
}
map.put(c, count);
}

for (int i = 0; i < t.length(); i++) {
char c = t.charAt(i);

if (!map.containsKey(c)) {
return false;
}
int count = map.get(c) - 1;
if (count == 0) {
map.remove(c);
} else {
map.put(c, count);
}
}
return map.isEmpty();
}
}