สมมติว่าเรามีรายการตัวเลขชื่อ nums เราต้องคืนค่ารายการโดยการสลับดัชนีคู่ที่ติดกัน (even indexes) กับกัน และดัชนีคี่ที่ติดกัน (odd indexes) กับกัน
เช่น ถ้าอินพุตคือ nums = [8, 5, 3, 4, 8, 9, 3, 6, 4, 7] ผลลัพธ์จะเป็น [3, 4, 8, 5, 3, 6, 8, 9, 4, 7]
ขั้นตอนการแก้ปัญหา
- สำหรับ
iในช่วง0ถึงขนาดของ nums - 2เพิ่มทีละ 4:- ถ้า
i + 2 < ขนาดของ numsสลับnums[i]และnums[i + 2] - ถ้า
i + 3 < ขนาดของ numsสลับnums[i + 1]และnums[i + 3]
- ถ้า
- คืนค่า
nums
ตัวอย่างการใช้งาน
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
nums = [8, 5, 3, 4, 8, 9, 3, 6, 4, 7]
print(solve(nums))
อินพุต
[8, 5, 3, 4, 8, 9, 3, 6, 4, 7]
เอาต์พุต
[3, 4, 8, 5, 3, 6, 8, 9, 4, 7]