Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int rangeBitwiseAnd(int left, int right) {
- if(right-left<=1)
- {
- return right&left;
- }
- vector<int> a,b;
- while(left>0)
- {
- a.push_back(left%2);
- left/=2;
- }
- while(right>0)
- {
- b.push_back(right%2);
- right/=2;
- }
- if(a.size()!=b.size())
- return 0;
- int ans=0;
- for(int i=a.size()-1;i>=0;i--)
- {
- if(a[i]==b[i]&&a[i]==1)
- {
- ans+=pow(2,i);
- }
- else if(a[i]!=b[i])
- break;
- }
- return ans;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement