题解 | #懂二进制#

懂二进制

https://www.nowcoder.com/practice/120e406db3fd46f09d55d59093f13dd8

from sre_compile import CATEGORY_UNI_NOT_LINEBREAK
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param m int整型 
# @param n int整型 
# @return int整型
#
class Solution:
    def countBitDiff(self , m: int, n: int) -> int:
        # write code here
        m2 = bin(m).replace("0b","")
        n2 = bin(n).replace("0b","")
        lm=len(m2)
        ln=len(n2)
        gap=abs(lm-ln)
        if len(m2)>len(n2):
            n2=gap*"0"+n2
        else:
            m2=gap*"0"+m2

        

        count=0
        for i in range(max(lm,ln)):
            if m2[i]!=n2[i]:
                count=count+1

        return count
		
		#记住需要在位数少的那个数字前面补0 让2个数的长度一样才能进行比较
		#尽量用replace函数而不是strip函数

全部评论

相关推荐

牛客84809583...:举报了
点赞 评论 收藏
分享
兄弟们,实习都是在接各种api,该怎么包装简历
仁者伍敌:感觉我自己做小项目也是各种api啊,我要怎么包装简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务