
Counterfrom collections import Counter
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
return Counter(s) == Counter(t)
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
if len(s) != len(t):
return False
letters = {}
for ls in s:
if ls in letters:
letters[ls] += 1
else:
letters[ls] = 1
for lt in t:
if lt in letters:
if letters[lt] <= 0:
return False
else:
letters[lt] -= 1
else:
return False
return True
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
if len(s) != len(t):
return False
letters = {}
for c in s:
letters[c] = letters.get(c, 0) + 1
for c in t:
if c not in letters or letters[c] == 0:
return False
letters[c] -= 1
return True
What if the inputs contain Unicode characters? How would you adapt your solution to such a case?
In Python, dict and Counter already work with Unicode characters, so no code change is needed
The only issue is case and normalization
For example, "é" vs "e\u0301" look the same but are different code points. In such cases, use unicodedata.normalize() to unify them before comparison.