मान लीजिए हमारे पास दो पूर्णांक हैं। हमें उनकी हैमिंग दूरी ढूंढनी है। हैमिंग दूरी दो संख्याओं के बीच अलग-अलग बिट काउंट की संख्या है। उदाहरण के लिए, यदि संख्याएं 7 और 15 हैं, तो वे बाइनरी में 0111 और 1111 हैं, यहां MSB अलग है, इसलिए हैमिंग दूरी 1 है।
हल करने के चरण
- i = 31 से 0 तक
- b1 = x का दायां शिफ्ट (i AND 1 बार)
- b2 = y का दायां शिफ्ट (i AND 1 बार)
- यदि b1 = b2, तो answer := answer + 0, अन्यथा answer := answer + 1
- answer वापस करें
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
class Solution(object):
def hammingDistance(self, x, y):
"""
:type x: int
:type y: int
:rtype: int
"""
ans = 0
for i in range(31,-1,-1):
b1= x>>i&1
b2 = y>>i&1
ans+= not(b1==b2)
return ans
ob1 = Solution()
print(ob1.hammingDistance(7, 15))
इनपुट
7 15
आउटपुट
1