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

โปรแกรมหากลุ่มแอนนาแกรมที่ใหญ่ที่สุดจากรายการคำใน Python


สมมติว่าเรามีรายการคำที่เป็นสตริง เราต้องจัดกลุ่มแอนนาแกรมทั้งหมดเข้าด้วยกันและคืนค่าขนาดของการจัดกลุ่มที่ใหญ่ที่สุด

ดังนั้น หากอินพุตเป็นเหมือนคำ =["xy", "yx", "xyz", "zyx", "yzx", "wwwww"] ผลลัพธ์จะเป็น3 เป็น ["xyz", "zyx" , "yzx"] คือการจัดกลุ่มที่ใหญ่ที่สุด

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

  • lookup :=แผนที่ใหม่ เริ่มว่างเปล่า

  • res :=0

  • สำหรับแต่ละฉันในคำพูดทำ

    • p :=เรียงลำดับ i ด้วยวิธีพจนานุกรม

    • ถ้า p อยู่ในการค้นหา ให้เพิ่มจำนวน มิฉะนั้น 1

    • res :=สูงสุดของ res และการค้นหา[p]

  • ผลตอบแทน

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

class Solution:
   def solve(self, words):
      lookup = {}
      res = 0
      for i in words:
         p = "".join(sorted(i))
         lookup[p] = lookup.get(p, 0) + 1
         res = max(res, lookup[p])
      return res
ob = Solution()
words = ["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]
print(ob.solve(words))

อินพุต

["xy", "yx", "xyz", "zyx", "yzx", "wwwww"]

ผลลัพธ์

3