Computer >> Máy Tính >  >> Lập trình >> Python

Đảo chữ cái nhóm trong Python


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