LeetCode869 重新排序得到 2 的幂
https://leetcode-cn.com/problems/reordered-power-of-2/
先求出一个数的全排列,然后判断全排列中是否有一个数是2的幂
void permutation(string nums,int deep,vector<int>& ans){
if(deep==nums.size()&&nums[0]!='0'){
ans.push_back(stoi(nums));
return;
}
for(int i=deep;i<nums.size();i++){
swap(nums[deep],nums[i]);
permutation(nums,deep+1,ans);
swap(nums[deep],nums[i]);
}
}
bool reorderedPowerOf2(int n) {
string nums=to_string(n);
vector<int> ans;
permutation(nums,0,ans);
for(auto i:ans){
if(!(i&(i-1))) return true;
}
return false;
}