Python、C++、JavaScript、SQL、TypeScript の多様な LeetCode ソリューションを探索してください。面接の準備、学習、複数のプログラミング言語でのコードの練習に最適です。 Github リポジトリ リンク
符号なし整数のバイナリ表現を取得し、その整数が持つ「1」ビットの数を返す関数を作成します (符号なし整数とも呼ばれます)。 ハミングウェイト).
注記:
- Java などの一部の言語では、符号なし整数型が存在しないことに注意してください。この場合、整数の内部バイナリ表現は同じであるため、入力は符号付き整数型として与えられます。署名されているか署名されていないかです。
- Java では、コンパイラは次を使用して符号付き整数を表します。 2の補数表記したがって、 例 3の場合、入力は符号付き整数を表します。
-3
.
例 1:
入力: n = 0000000000000000000000000001011 出力: 3 説明: 入力バイナリ文字列 00000000000000000000000000001011 合計 3 つの「1」ビットがあります。
例 2:
入力: n = 00000000000000000000000010000000 出力: 1 説明: 入力バイナリ文字列 00000000000000000000000010000000 合計 1 つの「1」ビットがあります。
例 3:
入力: n = 11111111111111111111111111111101 出力: 31 説明: 入力バイナリ文字列 11111111111111111111111111111101 合計 31 個の「1」ビットがあります。
制約:
- 入力は次でなければなりません バイナリ文字列 長さの
32
.
フォローアップ: この関数が何度も呼び出される場合、どのように最適化しますか?
パイソン
class Solution { public: int hammingWeight(uint32_t n) { int sum = 0、mask = 1; for (int i = 0; i < 32; i++) { if ((n & Mask) != 0) sum++; >= 1; } 合計を返します。