思路:
將偶數和奇數分別放在even和odd列表中,然後利用zip()和chain()函式,將兩個列表交叉組合在一起。
重點是利用的zip函式和chain函式。
zip():
注意:zip() 返回的是乙個元組物件。如需展示列表,需手動 list() 轉換。
zip(*) 與zip()相反,相當於解壓
示例:
chain():
使用 chain() 的乙個常見場景是當你想對不同的集合中所有元素執行某些操作的時候。
注意在使用之前要匯入: from itertools import chain
示例:
from itertools import chain
a = [1, 2, 3, 4]
b = ['x', 'y', 'z']
for x in chain(a, b):
print(x)12
34xy
z>>>
from itertools import chain
class solution(object):
def sortarraybyparityii(self, a):
""":type a: list[int]
:rtype: list[int]
"""num =
odd = #放奇數
even = #放偶數
for i in a:
if i%2 == 0:
else:
return list(chain(*zip(even,odd)))
生成與a等長的全零列表res,利用兩個游標,乙個用來給res填充奇數,乙個用來填充偶數。
class solution(object):
def sortarraybyparityii(self, a):
""":type a: list[int]
:rtype: list[int]
"""res = [0 for _ in range(len(a))]
cur1,cur2 = 0,0
for i in a:
if i%2 == 0:
res[2*cur1] = i
cur1+=1
else:
res[2*cur2+1] = i
cur2+=1
return res
leetcode 922按奇偶排序陣列
給定乙個非負整數陣列 a,a 中一半整數是奇數,一半整數是偶數。對陣列進行排序,以便當 a i 為奇數時,i 也是奇數 當 a i 為偶數時,i 也是偶數。你可以返回任何滿足上述條件的陣列作為答案。示例 輸入 4,2,5,7 輸出 4,5,2,7 解釋 4,7,2,5 2,5,4,7 2,7,4,5...
leetcode 922 按奇偶排序陣列 II
給定乙個非負整數陣列a,a 中一半整數是奇數,一半整數是偶數。對陣列進行排序,以便當a i 為奇數時,i也是奇數 當a i 為偶數時,i也是偶數。你可以返回任何滿足上述條件的陣列作為答案。示例 輸入 4,2,5,7 輸出 4,5,2,7 解釋 4,7,2,5 2,5,4,7 2,7,4,5 也會被接...
LeetCode 922 按奇偶排序陣列II
題目描述 給定乙個非負整數陣列a,a 中一半整數是奇數,一半整數是偶數。對陣列進行排序,以便當a i 為奇數時,i也是奇數 當a i 為偶數時,i也是偶數。你可以返回任何滿足上述條件的陣列作為答案。示例 輸入 4,2,5,7 輸出 4,5,2,7 解釋 4,7,2,5 2,5,4,7 2,7,4,5...