LeetCode 869. 重新排序得到 2 的幂 Python

从正整数 N 开始,我们按任何顺序(包括原始顺序)将数字重新排序,注意其前导数字不能为零。

如果我们可以通过上述方式得到 2 的幂,返回 true;否则,返回 false

示例 1:

输入:1
输出:true

示例 2:

输入:10
输出:false

示例 3:

输入:16
输出:true

示例 4:

输入:24
输出:false

示例 5:

输入:46
输出:true

提示:

  1. 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

猜你喜欢

转载自blog.csdn.net/ma412410029/article/details/82496996