สมมติว่าเรามีชุดสตริง เราต้องจัดกลุ่ม anagram รวมกัน ตัวอย่าง ["eat", "tea", "tan", "ate", "nat", "bat"] กลุ่มคือ [["ate","eat","tea"],["nat","tan"],["bat"]]
ขั้นตอนการทำงาน
- กำหนด
resเป็น map (dictionary) - วนลูป
iในอาร์เรย์สตริง:x := sorted string of i แล้ว join- ถ้า
x in resultใส่iลงresult[x] - มิฉะนั้น
result[x] := [i]
- คืนค่า
values of res as list
ตัวอย่างโค้ด (Python)
class Solution:
def groupAnagrams(self, strs):
result = {}
for i in strs:
x = "".join(sorted(i))
if x in result:
result[x].append(i)
else:
result[x] = [i]
return list(result.values())
ob1 = Solution()
print(ob1.groupAnagrams(["eat", "tea", "tan", "ate", "nat", "bat"]))
อินพุต
["eat", "tea", "tan", "ate", "nat", "bat"]
เอาต์พุต
[["ate","eat","tea"],["nat","tan"],["bat"]]