Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

กลุ่ม Anagrams ใน Python


สมมุติว่า เรามีชุดของสตริง เราต้องรวมกลุ่มแอนนาแกรมเข้าด้วยกัน ดังนั้นถ้า ["กิน", "ชา", "ตาล", "กิน", "แนท", "ค้างคาว"] แล้วกลุ่มนั้นก็คือ [["ate","eat","tea"],[" แนท","ตาล"],["bat"]]

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • กำหนดความละเอียดเป็นแผนที่
  • สำหรับฉันในอาร์เรย์สตริง
    • x :=x และเข้าร่วม เรียงลำดับสตริงของ i
    • ถ้า x เป็นผลลัพธ์
      • แทรก i ในผลลัพธ์[x]
    • ผลอื่น[x] :=[i]
  • คืนค่า res เป็นรายการ

ตัวอย่าง(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"]]