检查长度为 m 的模式重复 K 次或更多次的程序是否存在于 Python 中

假设我们有一个具有正值的数组 nums,我们必须找到重复 k 次或超过 k 次的长度为 m 的模式。这里的模式是一个不重叠的子数组(连续),它由一个或多个值组成并重复多次。模式由其长度和重复次数定义。我们必须检查是否存在重复 k 次或更多次的长度为 m 的模式。

所以,如果输入像 nums = [3,5,1,4,3,1,4,3,1,4,3,9,6,1], m = 3, k = 2, 那么输出将是 True 因为有一个模式 [1,4,3] 出现了 3 次。

示例(Python)

让我们看看以下实现以获得更好的理解 -

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