Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm mảng sau khi hoán đổi cặp chỉ số liên tiếp Python

Cho mảng nums. Trả về mảng sau khi hoán đổi từng cặp chỉ số chẵn liên tiếp với nhau, và từng cặp chỉ số lẻ liên tiếp với nhau.

Ví dụ: nums=[8,5,3,4,8,9,3,6,4,7] → [3,4,8,5,3,6,8,9,4,7].

Giải thuật (Hoán đổi theo bước 4)

  1. Duyệt i từ 0 đến len(nums)-2 bước 4
  2. Nếu i+2 < len(nums): hoán đổi nums[i] và nums[i+2] (cặp chẵn)
  3. Nếu i+3 < len(nums): hoán đổi nums[i+1] và nums[i+3] (cặp lẻ)

Ví dụ triển khai

def solve(nums):
    for i in range(0, len(nums) - 2, 4):
        if i + 2 < len(nums):
            nums[i], nums[i + 2] = nums[i + 2], nums[i]
        if i + 3 < len(nums):
            nums[i + 1], nums[i + 3] = nums[i + 3], nums[i + 1]
    return nums

print(solve([8, 5, 3, 4, 8, 9, 3, 6, 4, 7]))

Đầu vào

[8, 5, 3, 4, 8, 9, 3, 6, 4, 7]

Đầu ra

[3, 4, 8, 5, 3, 6, 8, 9, 4, 7]