ধরুন আমাদের কাছে ধনাত্মক মান সহ একটি অ্যারে সংখ্যা আছে, আমাদের দৈর্ঘ্য m এর একটি প্যাটার্ন খুঁজে বের করতে হবে যা k বার বার বা তার বেশি পুনরাবৃত্তি হয়। এখানে একটি প্যাটার্ন হল একটি নন-ওভারল্যাপিং সাবয়ারে (পরপর) যা এক বা একাধিক মান নিয়ে গঠিত এবং একাধিকবার পুনরাবৃত্তি হয়। একটি প্যাটার্ন তার দৈর্ঘ্য এবং পুনরাবৃত্তির সংখ্যা দ্বারা সংজ্ঞায়িত করা হয়। আমাদের পরীক্ষা করতে হবে m দৈর্ঘ্যের একটি প্যাটার্ন আছে কি না যা k বা তার বেশি বার পুনরাবৃত্তি হয়।
সুতরাং, যদি ইনপুট হয় সংখ্যা =[3,5,1,4,3,1,4,3,1,4,3,9,6,1], m =3, k =2, তাহলে আউটপুট সত্য হবে কারণ একটি প্যাটার্ন আছে [1,4,3] যা 3 বার উপস্থিত।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
আমি 0 থেকে সংখ্যার আকার - 1 এর রেঞ্জের জন্য, করুন
-
sub1 :=সূচক i থেকে (i+m*k) পর্যন্ত সংখ্যার সাব অ্যারে - 1
-
sub2 :=সূচক i থেকে (i+m-1) পর্যন্ত সংখ্যার k ধারাবাহিক সাব অ্যারে
-
যদি sub1 হয় sub2 এর মত, তাহলে
-
রিটার্ন ট্রু
-
-
-
রিটার্ন ফলস
উদাহরণ (পাইথন)
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(nums, m, k): for i in range(len(nums)): sub1 = nums[i:i+m*k] sub2 = nums[i:i+m]*k if sub1 == sub2: return True return False nums = [3,5,1,4,3,1,4,3,1,4,3,9,6,1] m = 3 k = 2 print(solve(nums, m, k))
ইনপুট
[3,5,1,4,3,1,4,3,1,4,3,9,6,1], 3, 2
আউটপুট
True