从正整数 N 开始,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。
如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false。
示例 1:
输入:1 输出:true
示例 2:
输入:10 输出:false
示例 3:
输入:16 输出:true
示例 4:
输入:24 输出:false
示例 5:
输入:46 输出:true
提示:
1 <= N <= 10^9
import collections
class Solution:
def reorderedPowerOf2(self, N):
counter1 = collections.Counter(str(N))#源数字的计数
n = len(str(N))
num = 1
while len(str(num)) < n: num *= 2
while len(str(num)) == n:
if collections.Counter(str(num)) == counter1: return True
num *= 2
return False
本文探讨了一个有趣的问题:如何判断一个数字通过重新排列其数字后能否成为2的幂。通过一个Python实现的解决方案,我们展示了如何使用计数器比较原数字和2的幂之间的数字频率,从而高效地解决问题。

4156

被折叠的 条评论
为什么被折叠?



