Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬의 1비트 수


부호 없는 숫자 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