Количество битов «1»| Решение LeetCode

Добро пожаловать в наш новый блог, где мы расскажем о том, как решить задачу Leet Code, чтобы узнать количество битов «1».

Здесь мы будем использовать оператор LeftShift из C++. Итак, давайте начнем

Постановка задачи

Напишите функцию, которая принимает целое беззнаковое число и возвращает количество битов «1», которые оно имеет (также известное как вес Хэмминга).

Примечание:

Обратите внимание, что в некоторых языках, таких как Java, не существует типа unsigned integer. В этом случае на вход будет подано целое знаковое число. Это не должно повлиять на вашу реализацию, так как внутреннее двоичное представление целого числа одинаково, независимо от того, является ли оно знаковым или беззнаковым.
В Java компилятор представляет подписанные целые числа, используя нотацию дополнения 2. Поэтому в примере 3 входные данные представляют собой знаковое целое число. -3.

Пример 1:

Input: n = 00000000000000000000000000001011
Output: 3
Explanation: The input binary string 00000000000000000000000000001011 has a total of three '1' bits.

Пример 2:

Input: n = 00000000000000000000000010000000
Output: 1
Explanation: The input binary string 00000000000000000000000010000000 has a total of one '1' bit.

Пример 3:

Input: n = 11111111111111111111111111111101
Output: 31
Explanation: The input binary string 11111111111111111111111111111101 has a total of thirty one '1' bits.

Решение

class Solution {
public:
    int hammingWeight(uint32_t n) {
        // with the help of right shift operator
        int count = 0;
        while(n!=0){
            if(n&1){
                count++;
            }
            n = n>>1;
        }
        return count;
    }
};
Вход в полноэкранный режим Выйти из полноэкранного режима

Спасибо за ваше драгоценное время. Вам может понравиться мой пост и
вы можете.

Выпейте со мной кофе

Мой другой блог Сайт о технологиях

Мой канал YouTube Vlog

Оцените статью
Procodings.ru
Добавить комментарий