Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình sắp xếp số theo số bit 1 trong biểu diễn nhị phân Python

Cho mảng nums. Sắp xếp tăng dần theo số bit 1 trong biểu diễn nhị phân. Nếu số bit 1 bằng nhau, sắp xếp theo giá trị số.

Ví dụ: nums=[4,1,12,7,6] → [1,4,6,12,7] (bit 1: 1,1,2,2,3).

Giải thuật (Sort với key tùy chỉnh)

  1. Hàm key: lambda num: (bin(num).count('1'), num)
  2. Sắp xếp mảng theo key này

Ví dụ triển khai

def solve(nums):
    nums.sort(key=lambda num: (bin(num).count("1"), num))
    return nums

print(solve([4, 1, 12, 7, 6]))

Đầu vào

[4, 1, 12, 7, 6]

Đầu ra

[1, 4, 6, 12, 7]