একটি ৩২-বিট আনসাইনড ইন্টিজার দেওয়া থাকে। এর বাইনারি রিপ্রেজেন্টেশনের বিটগুলো রিভার্স করতে হবে। উদাহরণ: 00000000000000000000001001110100 রিভার্স করলে 00101110010000000000000000000000 হয়। রিভার্স করা বিটের ডেসিম্যাল মান রিটার্ন করতে হবে।
সমাধানের পদ্ধতি
ans = 0ইনিশিয়ালাইজ করুন।for i = 31 down to 0লুপ চালান:ans |= (n & 1) << i।n >>= 1।
ansরিটার্ন করুন।
উদাহরণ কোড (C++)
#includeusing namespace std; class Solution { public: uint32_t reverseBits(uint32_t n) { uint32_t ans = 0; for(int i = 31; i >= 0; i--){ ans |= (n & 1) << i; n >>= 1; } return ans; } }; main(){ Solution ob; cout << ob.reverseBits(0b00000000000000000000001001110100); }
ইনপুট
0b00000000000000000000001001110100
আউটপুট
775946240