透過在 Python 中交換連續索引對來查詢陣列的程式


假設我們有一個名為 nums 的數字列表,我們必須透過將每個連續偶數索引互換,並將每個連續奇數索引互換來返回列表。

因此,如果輸入像 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]
  • 返回 num

例子

讓我們看看以下實現以獲得更好的理解 −

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]

更新於: 2021-10-14

388 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.