869. Reordered Power of 2

Posted ruruozhenhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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. 1 <= N <= 10^9

 

Approach #1: Math. [Java]

class Solution {
    public boolean reorderedPowerOf2(int N) {
        int c = count(N);
        for (int i = 0; i < 32; ++i) {
            if (count(1 << i) == c) return true;
        }
        return false;
    }
    
    public int count(int x) {
        int ret = 0;
        for (; x > 0; x /= 10)
            ret += (int)Math.pow(10, x % 10);
        return ret;
    }
}

 

Analysis:

The way that use / and % to count the digit is awesome.

  

Reference:

https://leetcode.com/problems/reordered-power-of-2/discuss/149843/C%2B%2BJavaPython-Straight-Forward

 

以上是关于869. Reordered Power of 2的主要内容,如果未能解决你的问题,请参考以下文章

[Math_Medium] 869. Reordered Power of 2

869. 重新排序得到 2 的幂枚举

[LeetCode] Reordered Power of 2 重新排序为2的倍数

Leecode 869. 重新排序得到 2 的幂——Leecode每日一题系列

231 Power of Two 2的幂

231. Power of Two