6 kyu Sorting by bits
https://www.codewars.com/kata/59fa8e2646d8433ee200003f/train/python
Problem Statement: 给定数组arr = [7, 6, 15, 8]
bin(element) in 7有3个'1'的bit->(0111) 6有2个'1'bit->(000...0011) 15有4个'1'的bit->(000...1111) 8有1个'1'的bit->(000...1000)
包含'1'的数量由少到多排序结果为 [8, 6, 7, 15]
测试用例
[3, 8, 3, 6, 5, 7, 9, 1] => [1, 8, 3, 3, 5, 6, 9, 7]
def sort_by_bit(arr):
return sorted(arr,key=lambda x:(bin(x).count('1'),x))
测试用例的测试结果
[9,4,5,3,5,7,2,56,8,2,6,8,0] => [0, 2, 2, 4, 8, 8, 3, 5, 5, 6, 9, 7, 56]
课堂上深入讨论案例场景
丁丁猫组织noip竞赛队伍选拔的依据是算法考试成绩和数学成绩,在算法成绩相同时,再参考数学成绩。
以上你能否构造一个函数,返回所有同学由高到低的排序。









网友评论