สมมติว่าเรามีหมายเลขที่ไม่ได้ลงชื่อ n เราต้องหาจำนวน 1s ในการแทนค่าเลขฐานสองของตัวเลขนี้ นี้เรียกว่าน้ำหนักแฮม ดังนั้นหากตัวเลขเช่น 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