ধরা যাক 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