本文共 609 字,大约阅读时间需要 2 分钟。
题目描述:
You have an array of numbers. Your task is to sort ascending odd numbers but even numbers must be on their places. Zero isn't an odd number and you don't need to move it. If you have an empty array, you need to return it. Example
sort_array([5, 3, 2, 8, 1, 4]) == [1, 3, 2, 8, 5, 4]
在这里对数组中的奇数进行排序,并且不打乱原本偶数所在的位置。
解决思想为,找到数组中的所有奇数,然后对他们进行降序排序后放到一个栈中,最后再返回值时,通过判断原数组中每一个数字的奇偶性来选择返回原数组中相应位置的偶数,还是新的栈中的奇数。def sort_array(arr): odds = [] for i in arr: if i % 2 !=0: odds.append(i) odds = sorted(odds, reverse=True) return [x if x%2==0 else odds.pop() for x in arr]
转载地址:http://emmws.baihongyu.com/