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

Python에서 조각으로 배열을 구성할 수 있는지 확인하는 프로그램

<시간/>

모든 요소가 고유한 배열 num이 있고 조각이라고 하는 다른 작은 배열이 있는 다른 배열이 있다고 가정합니다. 배열을 어떤 순서로든 조각으로 연결하여 기본 배열 번호를 얻을 수 있는지 확인해야 합니다. 그러나 각 배열 조각[i]에 있는 요소를 재정렬할 수 없습니다.

따라서 입력이 nums =[5,1,12,36,2,47,6] pieces =[[2,47,6],[12,36],[1],[5]]와 같다면, 그러면 [[5], [1], [12,36], [2,47,6]] 순서로 연결하여 기본 배열을 얻을 수 있으므로 출력은 True가 됩니다.

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

  • temp :=새 목록

  • 조각의 각 p에 대해 수행

    • p[0]이 숫자로 표시되지 않으면

      • 거짓을 반환

    • l :=p의 크기

    • indx :=숫자로 된 인덱스(p[0])

    • 인덱스 indx에서 indx+l-1까지의 하위 배열이 p와 같지 않으면

      • 거짓을 반환

    • 그렇지 않으면

      • temp 뒤에 p 추가

  • nums의 크기가 temp의 크기와 같으면

    • 참을 반환

  • 그렇지 않으면

    • 거짓을 반환

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def solve(nums, pieces):
   temp = []
   for p in pieces:
      if p[0] not in nums:
         return False
      l = len(p)
      indx = nums.index(p[0])
      if nums[indx:indx+l] != p:
         return False
      else:
         temp.extend(p)
   if len(nums) == len(temp):
      return True
   else:
      return False

nums = [5,1,12,36,2,47,6]
pieces = [[2,47,6],[12,36],[1],[5]]
print(solve(nums, pieces))

입력

[5,1,12,36,2,47,6], [[2,47,6],[12,36],[1],[5]]

출력

True