สมมติว่าเรามีรายการคำที่เป็นสตริง เราต้องจัดกลุ่มแอนนาแกรมทั้งหมดเข้าด้วยกันและคืนค่าขนาดของการจัดกลุ่มที่ใหญ่ที่สุด
ดังนั้น หากอินพุตเป็นเหมือนคำ =["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