The basic idea is derived from counting sort.

**Time complexity = O(n)** : O(n + 26) = O(n)

```
public boolean isAnagram(String s, String t) {
if (s == null || t == null || s.length() != t.length()) return false;
int count[] = new int[26];
for (int i = 0; i < s.length(); i++) {
count[s.charAt(i)-'a']++;
count[t.charAt(i)-'a']--;
}
for (int i = 0; i < 26; i++)
if (count[i] != 0)
return false;
return true;
}
```