用Python方式计算以2为底的尾随零的数量

发布于 2021-01-29 15:05:53

我正在寻找一种Python方式来计算正整数的二进制表示形式中的尾随零数n(这将指示最大幂2n而无余数)。

一个简单的解决方案:

def CountZeros(n):
    c = 0
    while (n % 2) == 0:
        n /= 2
        c += 1
    return c

但是,为了以更Python化的方式进行操作,我认为我可以利用:

  • bin(n)[2:],它给出的二进制表示形式 n
  • bin(n)[:1:-1],它给出了的反向二进制表示形式 n

因此,我的问题可以简化为对字符串中的尾随零进行计数。

有任何单一陈述的方式可以做到这一点吗?

我的最终目标是一种Python的方法,用于计算其最大幂2n而无余数,因此不通过计数字符串中的尾随零来实现此目的的任何方法也应受到赞赏。

关注者
0
被浏览
59
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您可以使用str.rstrip

    def trailing(s):
        return len(s) - len(s.rstrip('0'))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看