42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
def validAnagram(s: str, t: str) -> bool:
|
|
seen = {}
|
|
check = {}
|
|
count = 0
|
|
for letter in s:
|
|
if letter in seen:
|
|
seen[letter] += 1
|
|
else:
|
|
seen[letter] = 1
|
|
for letter in t:
|
|
if letter in check:
|
|
check[letter] += 1
|
|
else:
|
|
check[letter] = 1
|
|
if seen != check:
|
|
return False
|
|
else:
|
|
return True
|
|
|
|
|
|
def groupAnagrams(strs: list[str])->list[str]:
|
|
"""
|
|
:type strs: List[str]
|
|
:rtype: List[List[str]]
|
|
"""
|
|
grouped = []
|
|
# Fill first list with matching anagrams
|
|
for i in range(len(strs)):
|
|
for j in range(i+1, len(strs)):
|
|
if validAnagram(strs[i], strs[j]) == True:
|
|
if i in grouped:
|
|
if j in grouped:
|
|
grouped.append(strs[j])
|
|
else:
|
|
grouped.append(strs[i])
|
|
|
|
|
|
return grouped
|
|
|
|
|
|
|
|
print(groupAnagrams(["eat","tea","tan","ate","nat","bat"])) |