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

पायथन में दो स्ट्रिंग्स को इस तरह विभाजित करने का प्रोग्राम कि प्रत्येक विभाजन एनाग्राम बनाए


मान लीजिए हमारे पास समान लंबाई के दो गैर-खाली स्ट्रिंग्स s और t हैं। हमें उन्हें सबस्ट्रिंग्स में विभाजित करना है ताकि s और t के प्रत्येक जोड़ी सबस्ट्रिंग का आकार समान हो और वे एक-दूसरे के एनाग्राम हों। अब उन कट इंडेक्स को ढूंढें जिनसे s और t के अधिकतम कट्स प्राप्त हों। यदि कोई परिणाम न मिले, तो खाली सूची लौटाएं।

उदाहरण के लिए, यदि इनपुट है s = "bowcattiger", t = "owbactietgr", तो आउटपुट होगा [0, 3, 5, 6, 10], क्योंकि हम स्ट्रिंग को 5 विभाजनों में बांट सकते हैं जहां प्रत्येक स्ट्रिंग एक-दूसरे की एनाग्राम है:

  • s = ["bow", "ca", "t", "tige", "r"]
  • t = ["owb", "ac", "t", "ietg", "r"]

हल करने के चरण

  • intervals := एक नई सूची।
  • cs := s में मौजूद वर्णों और उनकी आवृत्ति का मैप।
  • ct := t में मौजूद वर्णों और उनकी आवृत्ति का मैप।
  • यदि cs, ct के समान नहीं है, तो खाली सूची लौटाएं।
  • x को s के आकार - 1 से 0 तक घटाते हुए:
    • cs[s[x]] := cs[s[x]] - 1
    • ct[t[x]] := ct[t[x]] - 1
    • यदि cs, ct के समान है, तो x को intervals के अंत में डालें।
  • intervals सूची को क्रमबद्ध करके लौटाएं।

उदाहरण

from collections import Counter
class Solution:
    def solve(self, a, b):
        intervals = []
        ca = Counter(a)
        cb = Counter(b)
        if ca != cb:
            return []
        for x in reversed(range(len(a))):
            ca[a[x]] -= 1
            cb[b[x]] -= 1
            if ca == cb:
                intervals.append(x)
        return sorted(intervals)

ob = Solution()
s = "bowcattiger"
t = "owbactietgr"
print(ob.solve(s, t))

इनपुट

"bowcattiger", "owbactietgr"

आउटपुट

[0, 3, 5, 6, 10]
  1. - पायथन में समान लंबाई की दो स्ट्रिंग्स को वर्णों की अदला-बदली करके बराबर बनाने का प्रोग्राम

    मान लीजिए हमारे पास लंबाई n की दो स्ट्रिंग्स s और t हैं। हम s से एक वर्ण और t से एक वर्ण ले सकते हैं और उन्हें स्वैप कर सकते हैं। हम असीमित संख्या में स्वैप कर सकते हैं; हमें जांचना है कि क्या दोनों स्ट्रिंग्स को बराबर बनाना संभव है या नहीं। उदाहरण के लिए, यदि इनपुट s = xy, t = yx है, तो आउटपुट Tru

  1. - पायथन में स्ट्रिंग्स के रूप में दर्शाई गई दो संख्याओं को जोड़ने का प्रोग्राम

    मान लीजिए हमारे पास दो स्ट्रिंग्स S और T हैं, ये दोनों एक पूर्णांक को दर्शाते हैं, हमें उन्हें जोड़ना है और परिणाम को उसी स्ट्रिंग प्रतिनिधित्व में ढूंढना है। उदाहरण के लिए, यदि इनपुट है 256478921657, 5871257468, तो आउटपुट होगा 262350179125, क्योंकि 256478921657 + 5871257468 = 262350179125। हल करने

  1. पायथन प्रोग्राम: दो स्ट्रिंग्स से असामान्य शब्द खोजें पायथन प्रोग्राम: दो स्ट्रिंग्स से असामान्य शब्द खोजें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें दो स्ट्रिंग्स दी गई हैं, हमें दी गई स्ट्रिंग्स से असामान्य शब्द प्राप्त करने हैं। उदाहरण # असामान्य शब्द def find(A, B): # काउंट count = {} # A में डालें for word in A.split(): count[word] = count.get(w