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)
- Duyệt
itừ 0 đếnlen(nums)-2bước 4 - Nếu
i+2 < len(nums): hoán đổinums[i]vànums[i+2](cặp chẵn) - Nếu
i+3 < len(nums): hoán đổinums[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]