重新排序得到 2 的幂

给定正整数 n ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。
如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。

  • 输入:n = 1
    输出:true

  • 输入:n = 10
    输出:false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var reorderedPowerOf2 = function(n) {
const set = new Set();
// 一共有30个2的幂
for (let i = 0; i < 30; i++) {
// 将每个2的幂的字符串排序后,放入set
const str = String(2 ** i)
.split('')
.sort()
.join('');
set.add(str);
}
// 查找n的字符串,排序后,有没有在set中出现过
return set.has(String(n).split('').sort().join(''));
};