[LeetCode] 0191. 1비트수

1비트 수

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; } 반환 합계 } };
				
			
ko_KR한국어