কম্পিউটার

দুটি স্ট্রিংকে বিভাজন করার প্রোগ্রাম যাতে প্রতিটি পার্টিশন পাইথনে অ্যানাগ্রাম তৈরি করে


ধরুন আমাদের দুটি অ-খালি স্ট্রিং s এবং t আছে যা একই দৈর্ঘ্যের। আমাদের সেগুলিকে সাবস্ট্রিংগুলিতে ভাগ করতে হবে যাতে প্রতিটি জোড়া s এবং টি সাবস্ট্রিং একই আকারের হয় এবং তারা একে অপরের অ্যানাগ্রাম হয়। এখন কাটা সূচীগুলি এমনভাবে খুঁজুন যাতে এর ফলে s এবং t-এর সর্বাধিক সংখ্যক কাট হয়। যদি কোন ফলাফল না পাওয়া যায়, তাহলে খালি তালিকা ফেরত দিন।

সুতরাং, যদি ইনপুটটি s ="bowcattiger" t ="owbactietgr" এর মত হয়, তাহলে আউটপুট হবে [0, 3, 5, 6, 10], যেহেতু আমরা স্ট্রিংটিকে 5টি পার্টিশনে ভাগ করতে পারি যাতে প্রতিটি স্ট্রিং একটি একে অপরের anagram. s =["বো", "ca", "t", "tige", "r"], t =["owb", "ac", "t", "ietg", "r"]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ব্যবধান :=একটি নতুন তালিকা
  • cs :=s এবং এর ফ্রিকোয়েন্সিতে উপস্থিত অক্ষর সহ একটি মানচিত্র
  • ct :=টি এবং এর ফ্রিকোয়েন্সি অক্ষর সহ একটি মানচিত্র
  • যদি cs ct এর মত না হয়, তাহলে
    • একটি নতুন তালিকা ফেরত দিন
  • s - 1 থেকে 0 এর রেঞ্জের আকারে x-এর জন্য,
      করুন
    • cs[s[x]] :=cs[s[x]] - 1
    • ct[t[x]] :=ct[t[x]] - 1
    • যদি cs ct এর মত হয়, তাহলে
      • ব্যবধানের শেষে x ঢোকান
  • তালিকা ব্যবধান বাছাই করুন এবং ফিরে আসুন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

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. দুটি স্ট্রিং থেকে অস্বাভাবিক শব্দ খুঁজে পেতে পাইথন প্রোগ্রাম