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