কম্পিউটার টিউটোরিয়াল

পাইথনে দুটি স্ট্রিংকে অ্যানাগ্রাম बनानेवाले পার্টিশনে ভাগ করার প্রোগ্রাম


मान लीजिए हमारे पास दो गैर-खाली स्ट्रिंग्स 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. পাইথনে দুটি স্ট্রিংয়ের পারমিউটেশন থেকে লেক্সিকোগ্রাফিক্যালি বড় বা ছোট রিলেশন চেক করার প্রোগ্রাম

  2. পাইথনে সমান দৈর্ঘ্যের দুটি স্ট্রিংকে ক্যারেক্টার সোয়্যাপ করে সমান করার প্রোগ্রাম

  3. পাইথনে স্ট্রিং হিসেবে দেওয়া দুটি সংখ্যা যোগ করার প্রোগ্রাম

  4. দুই স্ট্রিং থেকে অনকমন ওয়ার্ড বের করার পাইথন প্রোগ্রাম