题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
思路
使用两个数组,分别存储奇数和偶数,再利用Python列表可以直接连接的特性,相加即可
代码一
ps:本人还是C语言的使用习惯写的,虽然也通过了,但是一点也不Python(简洁)
# -*- coding:utf-8 -*-
class Solution:
def reOrderArray(self, array):
# write code here
i = 0
odd = []
even = []
while len(array) > i:
if array[i] % 2 == 1:
odd.append(array[i])
else:
even.append(array[i])
i += 1
return odd + even
代码二
牛客网高玩的代码,思路一样,但是非常的Python(简洁)!!!
def reOrderArray(self, array):
# write code here
odd,even=[],[]
for i in array:
odd.append(i) if i%2==1 else even.append(i)
return odd+even
更简洁的!!!
return sorted(array,key=lambda c:c%2,reverse=True)
附:Python中if else 的简洁写法:
https://www.cnblogs.com/xiexiaoxiao/p/7772441.html