मान लीजिए कि हमारे पास सकारात्मक मूल्यों के साथ एक सरणी संख्या है, हमें लंबाई m का एक पैटर्न खोजना होगा जो k या k से अधिक बार दोहराया जाए। यहां एक पैटर्न एक गैर-अतिव्यापी सबरे (लगातार) है जिसमें एक या अधिक मान होते हैं और कई बार दोहराए जाते हैं। एक पैटर्न इसकी लंबाई और दोहराव की संख्या से परिभाषित होता है। हमें यह जांचना होगा कि क्या लंबाई m का कोई पैटर्न मौजूद है जिसे k या अधिक बार दोहराया जाता है या नहीं।
इसलिए, यदि इनपुट अंकों की तरह है =[3,5,1,4,3,1,4,3,1,4,3,9,6,1], एम =3, के =2, तो आउटपुट सच होगा क्योंकि एक पैटर्न [1,4,3] है जो 3 बार मौजूद है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
मैं के लिए 0 से लेकर अंकों के आकार -1 तक की सीमा में, करें
-
sub1 :=सूचकांक i से (i+m*k) तक अंकों की उप सरणी - 1
-
sub2 :=k इंडेक्स i से (i+m-1) तक अंकों की लगातार उप सरणी
-
अगर सब1 सब2 के समान है, तो
-
सही लौटें
-
-
-
झूठी वापसी
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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