在Python中检查长度为m且重复出现K次或更多次的模式是否存在的程序
假设我们有一个有正数值的数组nums,我们必须找到一个长度为m的模式,该模式重复出现k次或多于k次。这里的模式是由一个或多个值组成的非重叠子数组(连续的),并且重复出现多次。通过其长度和重复次数来定义模式。我们必须检查是否存在重复出现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次。
要解决这个问题,我们将按照以下步骤进行−
- 对于i在0到nums大小-1的范围内,做如下操作
- sub1:从索引i到(i+m*k)-1的nums数组的子数组
-
sub2:从索引i到(i+m-1)的nums数组中的k个连续的子数组
-
如果sub1与sub2相同,则
- 返回True
- 返回False
示例(Python)
让我们看看以下实现,以更好地理解−