मान लीजिए हमारे पास एक संख्या n है। हमें जांचना है कि n का बाइनरी प्रतिनिधित्व पालिंड्रोम है या नहीं।
उदाहरण के लिए, यदि n = 9 है, तो आउटपुट True होगा क्योंकि 9 का बाइनरी प्रतिनिधित्व 1001 है जो पालिंड्रोम है।
हल करने का तरीका
- reverse_binary() फ़ंक्शन परिभाषित करें जो बाइनरी बिट्स को उल्टा करता है
- ans := 0
- जब तक num > 0:
- ans := ans << 1 (बाएं शिफ्ट)
- यदि num विषम है, तो ans := ans XOR 1
- num := num >> 1 (दाएं शिफ्ट)
- ans लौटाएं
- मूल संख्या और उल्टी बाइनरी की तुलना करें
उदाहरण
def reverse_binary(num):
ans = 0
while num > 0:
ans = ans << 1
if num & 1 == 1:
ans = ans ^ 1
num = num >> 1
return ans
def solve(n):
rev = reverse_binary(n)
return n == rev
n = 9
print(solve(n))
इनपुट
9
आउटपुट
True