ধরুন আমাদের একটি ধনাত্মক পূর্ণসংখ্যা আছে, আমাদের পরীক্ষা করতে হবে এতে বিকল্প বিট আছে কিনা - তাই, দুটি সন্নিহিত বিটের সবসময় আলাদা মান থাকবে।
সুতরাং, যদি ইনপুট 10 এর মত হয়, তাহলে আউটপুট হবে True, যেহেতু 10-এর বাইনারি উপস্থাপনা হল 1010৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- p :=n এবং 1
- যদি n <2, তাহলে −
- সত্য ফেরত দিন
- n :=n/2
- যখন n অ-শূন্য, কর −
- c :=n এবং 1
- যদি c XOR p 0 এর মত হয়, তাহলে −
- মিথ্যে ফেরত দিন
- p :=c
- n :=n/2
- সত্য ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
#include <bits/stdc++.h> using namespace std; class Solution { public: bool hasAlternatingBits(int n) { bool p=n&1; bool c; if(n<2) return true; n>>=1; while(n){ c=n&1; if(c^p==0) return false; p=c; n>>=1; } return true; } }; main(){ Solution ob; cout << (ob.hasAlternatingBits(10)); }
ইনপুট
10
আউটপুট
1