题目
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reordered-power-of-2
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。
如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。
示例
输入:46 输出:true
输入:24 输出:false
答案
/**
* @param {number} n
* @return {boolean}
*/
var reorderedPowerOf2 = function(n) {
let index=0,twoIndex=1;
//把n的每一个数按照从大到小排序
let nSort=String(n).split('').sort((a,b)=>b-a).join('');
//对2反复求平方,然后排序看是否相等,一直到等同或者平方大于n为止
while(twoIndex<=Number(nSort)){
let twoIndexSort=String(twoIndex).split('').sort((a,b)=>b-a).join('');
if(nSort === twoIndexSort) return true;
twoIndex=Math.pow(2,++index);
}
return false
};