Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra xem một mảng có được sắp xếp và xoay vòng trong Python hay không

Giả sử chúng ta có một mảng gọi là nums, chúng ta phải kiểm tra xem mảng ban đầu có được sắp xếp theo thứ tự không giảm, và sau đó xoay một số vị trí (có thể bằng 0) hay không. Các bản sao cũng có thể xuất hiện trong mảng.

Vì vậy, nếu đầu vào giống như nums =[12,15,2,5,6,9], thì đầu ra sẽ là True, vì nó được xoay sang phải cho hai vị trí

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • j:=0

  • while j

    • j:=j + 1

  • res:=(mảng con nums từ chỉ số j + 1 đến cuối nums) nối (mảng con nums từ chỉ mục 0 đến j trong số nums)

  • đối với tôi trong phạm vi 0 đến kích thước của res - 1, thực hiện

    • nếu res [i]> res [i + 1] thì

      • trả về Sai

  • trả về True

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

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

Đầu ra

True