मान लीजिए हमारे पास दशमलव संख्या प्रणाली में एक संख्या है। हमें बाइनरी रूप में संख्या का कॉम्प्लीमेंट प्राप्त करना है, फिर इसे फिर से दशमलव में बदलकर परिणाम लौटाना है। इसलिए यदि संख्या 20 है, तो बाइनरी रूप 10100 होगा, कॉम्प्लीमेंट 01011 होगा, यह दशमलव में 11 है।
समाधान के चरण
- s := संख्या n का बाइनरी स्ट्रिंग
- sum := 0 और num := 1
- s में प्रत्येक एलिमेंट i के लिए रिवर्स दिशा में
- यदि i = 'b', तो sum लौटाएं
- अन्यथा जब i = '0', तो sum := sum + num
- num := num * 2
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
class Solution(object):
def bitwiseComplement(self, N):
s = str(bin(N))
sum = 0
num = 1
for i in s[::-1]:
if i == "b":
return sum
elif i == "0":
sum += num
num *= 2
ob1 = Solution()
print(ob1.bitwiseComplement(20))
इनपुट
20
आउटपुट
11