Giả sử, chúng ta có một tập hợp các chuỗi. Chúng ta phải nhóm đảo chữ cái lại với nhau. Vì vậy, nếu ["eat", "tea", "tan", "ate", "nat", "bat"], thì các nhóm là [["ate", "eat", "tea"], [" nat "," tan "], [" bat "]]
Để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau -
- Xác định res dưới dạng bản đồ
- cho tôi trong mảng chuỗi
- x:=x và nối, chuỗi được sắp xếp của i
- nếu kết quả là x
- chèn tôi vào kết quả [x]
- kết quả khác [x]:=[i]
- trả về các giá trị của res dưới dạng danh sách
Ví dụ (Python)
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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"]))
Đầu vào
["eat", "tea", "tan", "ate", "nat", "bat"]
Đầu ra
[["ate","eat","tea"],["nat","tan"],["bat"]]