Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จำนวนบิต 1 ใน Python

สมมติว่าเรามีจำนวนไม่มีเครื่องหมาย n เราต้องหาจำนวน 1 ในการแทนค่าทศนิยมสองของตัวเลขนี้ นี่ cònเรียกว่า Hamming Weight เช่นถ้าตัวเลขเป็น 000000101101 ผลลัพธ์จะเป็น 4

วิธีการแก้ปัญหา

  • รับตัวเลขและแปลงเป็นสตริงทศนิยมสอง
  • ตั้งค่า count = 0
  • สำหรับแต่ละตัวอักษร e ในสตริงทศนิยมสอง:
    • ถ้าตัวอักษรเป็น '1' ให้เพิ่ม count ขึ้น 1
  • คืนค่า count

ตัวอย่าง

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