牛客网《剑指offer》之Python2.7实现:调整数组顺序使奇数位于偶数前面

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

思路

使用两个数组,分别存储奇数和偶数,再利用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

猜你喜欢

转载自blog.csdn.net/ck_101/article/details/82888951
今日推荐