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