在 Python 中根据二进制表示中的 1 个计数对数字进行排序的程序
假设我们有一个nums中的数字列表。我们必须按照每个数字的二进制表示中存在的1的数量按升序对列表进行排序。如果两个数字有相同数量的1,则根据它们的值排列它们。
因此,如果输入类似于nums=[4,1,12,7,6],那么输出将是[1,4,6,12,7],因为-
4的二进制形式是0100
1的二进制形式是0001
6的二进制形式是0110
12的二进制形式是1100
7的二进制形式是0111
所以排列是[1,4,6,12,7],1在前是因为它的值较小,同样的原因是6在前。
示例
让我们看看以下实现以获得更好的理解-
def solve(nums):
nums.sort(key=lambda num: (bin(num).count("1"), num))
return nums
nums = [4, 1, 12, 7, 6]
print(solve(nums))输入
[4, 1, 12, 7, 6]输出结果
[1, 4, 6, 12, 7]
热门推荐
10 新年祝福语长篇文案简短
11 祝福语诗意文案简短
12 农民朋友发财祝福语简短
13 文艺结婚祝福语短语简短
14 学生祝福语简短古诗大全
15 简短祝福语大全暖心
16 周末祝福语正能量简短
17 同事男生节祝福语简短
18 爸爸爱你祝福语大全简短