मान लीजिए कि हमारे पास स्ट्रिंग शब्दों की एक सूची है, हमें सभी विपर्यय को एक साथ समूहित करना होगा और सबसे बड़े समूह का आकार वापस करना होगा।
इसलिए, यदि इनपुट शब्दों की तरह है =["xy", "yx", "xyz", "zyx", "yzx", "wwwww"], तो आउटपुट 3 होगा, जैसे ["xyz", "zyx" , "yzx"] सबसे बड़ा समूह है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
लुकअप :=एक नया नक्शा, शुरू में खाली
-
रेस :=0
-
प्रत्येक के लिए i शब्दों में, करें
-
p :=लेक्सिकोग्राफिकल तरीके से i सॉर्ट करें
-
अगर p लुकअप में है, तो गिनती बढ़ाएँ, अन्यथा 1
-
रेस :=अधिकतम रेस और लुकअप[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