leetcode869重新排序得到2的幂

leetcode 869 Reordered Power of 2

Posted by BY on August 2, 2020

前言

持续更新了

正文

问题来源

本问题来自leetcode上的869题。

问题描述

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

示例 1:

输入:10
输出:false

示例 2:

输入:46
输出:true

分析:

func reorderedPowerOf2(N int) bool {
    resN := count(N)
    for i := 0; i < 31; i++ {
        r := count(1<<i)
        if string(resN) == string(r) {
            return true
        }
    }
    return false
}

func count(N int) []byte {
    res := make([]byte, 10)
    for N != 0 {
        res[N%10]++
        N /= 10
    }
    return res
}

总结:

勤思考。

结语

不管怎么样好好加油。