本文共 895 字,大约阅读时间需要 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: 1Output: trueExample 2:
Input: 10Output: falseExample 3:
Input: 16Output: trueExample 4:
Input: 24Output: falseExample 5:
Input: 46Output: true
Note:
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:
转载地址:http://udtuz.baihongyu.com/