Python, C++, JavaScript, SQL 및 TypeScript의 다양한 LeetCode 솔루션을 살펴보세요. 여러 프로그래밍 언어로 인터뷰 준비, 학습 및 코드 연습에 적합합니다. Github 레포 링크
부호 없는 정수의 이진 표현을 취하고 그것이 가지고 있는 '1' 비트의 수를 반환하는 함수를 작성하세요. 해밍 웨이트).
메모:
- Java와 같은 일부 언어에는 부호 없는 정수 유형이 없습니다. 이 경우 입력은 부호 있는 정수 유형으로 제공됩니다. 정수의 내부 이진 표현은 동일하므로 구현에 영향을 주지 않습니다. 서명되었거나 서명되지 않았습니다.
- Java에서 컴파일러는 다음을 사용하여 부호 있는 정수를 나타냅니다. 2의 보수 표기법. 그러므로 실시예 3, 입력은 부호 있는 정수를 나타냅니다.
-3
.
예시 1:
입력: n = 00000000000000000000000000001011 산출: 3 설명: 입력 바이너리 문자열 00000000000000000000000000001011 총 3개의 '1' 비트가 있습니다.
예 2:
입력: n = 00000000000000000000000010000000 산출: 1 설명: 입력 바이너리 문자열 00000000000000000000000010000000 총 1개의 '1' 비트가 있습니다.
예시 3:
입력: n = 11111111111111111111111111111101 산출: 31 설명: 입력 바이너리 문자열 11111111111111111111111111111101 총 31개의 '1' 비트가 있습니다.
제약:
- 입력은 다음과 같아야 합니다. 이진 문자열 길이의
32
.
후속 조치: 이 함수가 여러 번 호출된다면 어떻게 최적화하시겠습니까?
파이썬
클래스 솔루션 { 공개: int hammingWeight(uint32_t n) { int sum = 0, 마스크 = 1; for (int i = 0; i < 32; i++) { if ((n & 마스크) != 0) sum++; >= 1; } 반환 합계 } };