JZ15 二进制中1的个数

二进制中1的个数

https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=265&rp=1&ru=%2Fexam%2Foj%2Fta&qru=%2Fexam%2Foj%2Fta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D13&difficulty=&judgeStatus=&tags=&title=&gioEnter=menu

编程打卡第三天:

解法1:分情况讨论,用bin()

    def NumberOf1(self , n: int) -> int:
        # write code here
        result = 0
        result_neg = 0
        if n >= 0:
            binary_n = bin(n)
            for strs in str(binary_n):
                if strs == '1':
                    result += 1
            return result
        if n < 0:
            binary_n_neg = bin(abs(n))[2:]
            for strs in str(binary_n_neg):
                if strs == "0":
                    result_neg += 1
            result = 32- result_neg
            return result

解法2: 反码:n & 0xffffffff

    def NumberOf1(self , n: int) -> int:
        # write code here
        # -*- coding:utf-8 -*-
        # write code here
        if n < 0:
            n = n & 0xffffffff
        binNum = bin(n)[2:]
        arr = str(binNum)
        res = 0
        for ch in arr:
            if int(ch) == 1:
                res += 1
        return res
全部评论

相关推荐

点赞 评论 收藏
分享
06-26 18:30
门头沟学院 Java
据说名字越长别人越关...:你问问这里面有多少是正经候选人,而不是乱打招呼的
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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