Подсчет битов набора с использованием понимания списка Python
Опубликовано: 18 Января, 2022
Напишите эффективную программу для подсчета единиц в двоичном представлении целого числа.
Примеры:
Ввод: n = 6 Выход: 2 Двоичное представление 6 равно 110 и имеет 2 заданных бита. Ввод: n = 11 Выход: 3 Двоичное представление 11 равно 1101 и имеет 3 заданных бита.
Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.
We have existing solution for this problem please refer Count set bits in an integer link. We will solve this problem in Python using List comprehension. Approach is simple,
- Convert given number into it’s binary representation using bin(number) function.
- Now separate out all 1’s from binary representation of given number and print length of list of 1’s.
# Function to count set bits in an integer # in Python def countSetBits(num): # convert given number into binary # output will be like bin(11)=0b1101 binary = bin (num) # now separate out all 1"s from binary string # we need to skip starting two characters # of binary string i.e; 0b setBits = [ones for ones in binary[ 2 :] if ones = = "1" ] print ( len (setBits)) # Driver program if __name__ = = "__main__" : num = 11 countSetBits(num) |
Выход:
3
Below is one-liner solution.
print ( bin (num).count( "1" )) |
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.