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"]]