给定正整数 N ,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。
如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。
示例 1:
输入:1
输出:true
示例 2:
输入:10
输出:false
示例 3:
输入:16
输出:true
示例 4:
输入:24
输出:false
示例 5:
输入:46
输出:true
提示:
1 <= N <= 10^9
class Solution:
def __init__(self):
self.aNum = set()
for i in range(32):
n = str(2 ** i)
self.aNum.add(''.join(sorted(n)))
def reorderedPowerOf2(self, N):
m = ''.join(sorted(str(N)))
return m in self.aNum
if __name__ == '__main__':
solu = Solution()
print(solu.reorderedPowerOf2(821))