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

Python에서 배열이 정렬 및 회전되었는지 확인하는 프로그램

<시간/>

nums라는 배열이 있다고 가정하고 배열이 원래 내림차순으로 정렬되었는지 확인한 다음 몇 위치(0일 수도 있음)를 회전했는지 여부를 확인해야 합니다. 어레이에 중복이 있을 수도 있습니다.

따라서 입력이 nums =[12,15,2,5,6,9]와 같으면 두 위치만큼 오른쪽으로 회전하기 때문에 출력은 True가 됩니다.

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

  • j :=0

  • 동안 j

    • j :=j + 1

  • res :=(인덱스 j + 1에서 nums 끝까지의 nums의 하위 배열) concatenate (nums의 인덱스 0에서 j까지 nums의 하위 배열)

  • 범위 0에서 res - 1 크기의 i에 대해 수행

    • res[i]> res[i + 1]이면

      • 거짓을 반환

  • 참을 반환

예제(파이썬)

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

def solve(nums):
   j = 0
   while (j < len(nums) - 1 and nums[j] <= nums[j + 1]):
      j += 1
   res = nums[j + 1 : len(nums)] + nums[0:j + 1]
   for i in range(len(res) - 1):
      if res[i] > res[i + 1]:
         return False
   return True

nums = [12,15,2,5,6,9]
print(solve(nums))

입력

[12,15,2,5,6,9]

출력

True