부호 없는 숫자 n이 있다고 가정합니다. 이 수의 이진 표현에서 1의 수를 찾아야 합니다. 이것을 해밍 웨이트(Hamming Weight)라고도 합니다. 따라서 숫자가 000000101101과 같으면 결과는 4가 됩니다.
이 문제를 해결하기 위해 다음 단계를 사용합니다 -
- 숫자를 가져와서 이진 문자열로 변환
- 세트 수 =0
- 이진 문자열의 각 문자 e에 대해
- 문자가 '1'이면 1씩 증가
- 반환 횟수
예
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
class Solution(object): def hammingWeight(self, n): """ :type n: int :rtype: int """ n = str(bin(n)) print(n) one_count = 0 for i in n: if i == "1": one_count+=1 return one_count num = "000000101101" ob1 = Solution() print(ob1.hammingWeight(num))
입력
num = "000000101101"
출력
4