869. 重新排序得到 2 的幂
解题思路
因为数字可以重新排序. 我们可以找到在 1->10^9 区间内所有二次幂A 我们计算每个A的 0-9 数字的出现次数. 如果n的出现次数与A中 0-9 数字的出现次数. 即符合题意
代码
const countDigits = (ans) => {
const cnt = Array(10).fill(0)
while (ans) {
cnt[ans % 10]++
ans = (ans / 10) | 0
}
return cnt.join('')
}
const set = new Set()
for (let i = 1; i < 1e9; i <<= 1) set.add(countDigits(i))
var reorderedPowerOf2 = function (n) {
return set.has(countDigits(n))
}