# [LeetCode] 869. Reordered Power of 2

## 题目描述

Starting with a positive integer N, we reorder the digits in any order (including the original order) such that the leading digit is not zero.

Return true if and only if we can do this in a way such that the resulting number is a power of 2.

Example 1:

Input: 1
Output: true

Example 2:

Input: 10
Output: false

Example 3:

Input: 16
Output: true

Example 4:

Input: 24
Output: false

Example 5:

Input: 46
Output: true

Note:
1 <= N <= 10^9

## C++ 实现

class Solution {
public:
bool reorderedPowerOf2(int N) {
string str_num = to_string(N);
// 使用next_permutation 之前应排序
sort(str_num.begin(), str_num.end());
do
{
if (str_num.front() == '0')
{
continue;
}
if (isPowerOf2(stoi(str_num)))
{
return true;
}
} while(next_permutation(str_num.begin(), str_num.end()));

return false;
}
private:
bool isPowerOf2(const int num) const
{
return (num & num - 1) == 0;
}

};

• 点赞
• 评论
• 分享
x

海报分享

扫一扫，分享海报

• 收藏
• 手机看

分享到微信朋友圈

x

扫一扫，手机阅读

• 打赏

打赏

carbon06

你的鼓励将是我创作的最大动力

C币 余额
2C币 4C币 6C币 10C币 20C币 50C币
• 一键三连

点赞Mark关注该博主, 随时了解TA的最新博文