Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에 K회 이상 반복되는 길이 m의 패턴이 존재하는지 확인하는 프로그램

<시간/>

양수 값을 가진 배열 num이 있다고 가정하고 k번 이상 반복되는 길이 m의 패턴을 찾아야 합니다. 여기서 패턴은 하나 이상의 값으로 구성되고 여러 번 반복되는 비중첩 하위 배열(연속)입니다. 패턴은 길이와 반복 횟수로 정의됩니다. k번 이상 반복되는 길이가 m인 패턴이 있는지 확인해야 합니다.

따라서 입력이 nums =[3,5,1,4,3,1,4,3,1,4,3,9,6,1], m =3, k =2인 경우 출력은 3번 나타나는 패턴 [1,4,3]이 있기 때문에 True일 것입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 범위 0에서 숫자 - 1까지의 i에 대해 수행

    • 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