Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาอาร์เรย์จากการสลับคู่ดัชนีติดกันใน Python

สมมติว่าเรามีรายการตัวเลขชื่อ 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]

ขั้นตอนการแก้ปัญหา

  1. สำหรับ i ในช่วง 0 ถึง ขนาดของ nums - 2 เพิ่มทีละ 4:
    • ถ้า i + 2 < ขนาดของ nums สลับ nums[i] และ nums[i + 2]
    • ถ้า i + 3 < ขนาดของ nums สลับ nums[i + 1] และ nums[i + 3]
  2. คืนค่า 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]