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

পাইথনে স্ট্রিংয়ে k-দৈর্ঘ্যের সাবস্ট্রিং একাধিকবার ঘটে কতবার গণনা করার প্রোগ্রাম


ধরা যাক s নামক একটি স্ট্রিং এবং একটি সংখ্যা k আছে। s-এ k-দৈর্ঘ্যের সাবস্ট্রিং যেগুলো একাধিকবার ঘটেছে তাদের সংখ্যা বের করতে হবে।

উদাহরণ: s = "xxxyyy", k = 2 হলে আউটপুট 2।

সমাধানের ধাপসমূহ

  • seen := নতুন তালিকা
  • i = 0 থেকে len(s)-k পর্যন্ত: t = s[i:i+k], seen-এ অ্যাপেন্ড করুন।
  • mp := seen-এ সব অনন্য উপাদান ও তাদের ঘনত্বের ম্যাপ (Counter)
  • যে উপাদানগুলোর ঘনত্ব > 1, তাদের সংখ্যা যোগ করুন।

উদাহরণ কোড

class Solution:
    def solve(self, s, k):
        from collections import Counter
        seen = []
        for i in range(len(s) - k + 1):
            t = s[i : i + k]
            seen.append(t)
        s = Counter(seen)
        return sum(1 for x in s.values() if x > 1)

ob = Solution()
print(ob.solve("xxxyyy", 2))

ইনপুট

"xxxyyy",2

আউটপুট

2
  1. পাইথন প্রোগ্রাম সেট ব্যবহার করে স্ট্রিংয়ে ভাওয়েল কাউন্ট করা

  2. দেওয়া স্ট্রিংটি ভয়েল প্যালিনড্রোম কিনা চেক করার পাইথন প্রোগ্রাম

  3. পাইথনে স্ট্রিং প্যাংগ্রাম (Pangram) কিনা চেক করা

  4. পাইথনে সাবস্ট্রিং স্ট্রিংয়ে উপস্থিত কিনা যাচাই করার প্রোগ্রাম