Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में विशेष-समतुल्य स्ट्रिंग्स के समूह

मान लीजिए कि हमारे पास ए नामक स्ट्रिंग्स की एक सरणी है। एस पर एक कदम में एस के किसी भी दो अनुक्रमित वर्णों या एस के दो विषम अनुक्रमित वर्णों की अदला-बदली होती है।

अब, दो तार S और T विशेष-समतुल्य हैं यदि S पर किसी भी चाल के बाद, S, T के समान है। इसलिए, यदि S ="zzxy" और T ="xyzz" विशेष-समतुल्य हैं क्योंकि हम चालें चल सकते हैं जैसे "zzxy" से "xzzy" से "xyzz" जो S[0] और S[2], फिर S[1] और S[3] को स्वैप करते हैं।

अब, A से विशेष-समतुल्य स्ट्रिंग्स का एक समूह, A का एक गैर-रिक्त उपसमुच्चय इस प्रकार है कि -

समूह में स्ट्रिंग्स की प्रत्येक जोड़ी में विशेष समकक्ष हैं, और समूह सबसे बड़ा आकार संभव है (समूह में कोई स्ट्रिंग एस नहीं है जैसे कि एस उस समूह में प्रत्येक स्ट्रिंग के लिए विशेष समकक्ष है) हमें संख्या ज्ञात करनी है A.

. से विशेष-समतुल्य तारों के समूह

इसलिए, यदि इनपुट ["abcd",,"cdab",,"cbad",,"xyzz",,"zzxy",,"zzyx"] जैसा है, तो आउटपुट 3 होगा, क्योंकि एक समूह ["abcd", " cdab", "cbad"], क्योंकि वे सभी जोड़ीवार विशेष समकक्ष हैं, और अन्य कोई भी स्ट्रिंग इनके लिए सभी जोड़ीदार विशेष समकक्ष नहीं हैं। दो अन्य समूह भी हैं। ये ["xyzz", "zzxy"] और ["zzyx"] हैं।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • कोड:=एक नया सेट
  • ए में प्रत्येक शब्द के लिए, करें
    • कोड:=दो स्ट्रिंग्स को सम स्थिति सूचकांकों के साथ और दूसरी स्ट्रिंग को विषम स्थिति सूचकांकों के साथ संयोजित करें
    • कोड में कोड जोड़ें
  • कोड का वापसी आकार

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

class Solution:
   def numSpecialEquivGroups(self, A):
      codes = set()
      for word in A:
         code = ''.join(sorted(word[::2])) +''.join(sorted(word[1::2]))
         codes.add(code)
      return len(codes)
ob = Solution()
print(ob.numSpecialEquivGroups(["abcd","cdab","cbad","xyzz","zzxy","z
zyx"]))

इनपुट

["abcd","cdab","cbad","xyzz","zzxy","zzyx"]

आउटपुट

3

  1. फ़ज़ीवज़ी पायथन लाइब्रेरी

    इस ट्यूटोरियल में, हम FuzzyWuzzy . के बारे में जानेंगे पायथन पुस्तकालय। फ़ज़ीबज़ी तार की तुलना करने के लिए पुस्तकालय विकसित किया गया है। हमारे पास अन्य मॉड्यूल हैं जैसे रेगेक्स , difflib तार की तुलना करने के लिए। लेकिन, फ़ज़ीबज़ी अपने तरीके से अद्वितीय है। इस लाइब्रेरी की विधियाँ सत्य, असत्य या स्ट्

  1. पाइथन में स्ट्रिंग्स का % क्या करता है?

    % एक स्ट्रिंग स्वरूपण ऑपरेटर या इंटरपोलेशन ऑपरेटर है। प्रारूप% मान (जहां प्रारूप एक स्ट्रिंग है) को देखते हुए, प्रारूप में% रूपांतरण विनिर्देशों को मूल्यों के शून्य या अधिक तत्वों से बदल दिया जाता है। प्रभाव सी भाषा में स्प्रिंटफ () का उपयोग करने के समान है। उदाहरण के लिए, >>> lang = "

  1. पायथन में तारों की सूची कैसे क्रमबद्ध करें?

    एक सूची को जगह में क्रमबद्ध करने के लिए, यानी, सूची को स्वयं क्रमबद्ध करें और उस सूची में ही क्रम बदलें, आप स्ट्रिंग्स की सूची पर सॉर्ट () का उपयोग कर सकते हैं। उदाहरण के लिए, >>> a = ["Hello", "My", "Followers"] >>> a.sort() >>> print a ['