配对交换

作者: _阿南_ | 来源:发表于2020-03-16 13:04 被阅读0次

    题目:

    配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。
    
    示例1:
    
     输入:num = 2(或者0b10)
     输出 1 (或者 0b01)
    示例2:
    
     输入:num = 3
     输出:3
    提示:
    
    num的范围在[0, 2^30 - 1]之间,不会发生整数溢出。
    

    题目的理解:

    将整型转化为二进制的字符串,然后获取奇数位和偶数位,再组装成字符串。
    注意:二进制字符串前补0使字符串的长度是2的倍数。

    python实现

    class Solution:
        def exchangeBits(self, num: int) -> int:
            num_str = bin(num)
            num_str = num_str.replace('0b', '')
            if len(num_str) % 2 != 0:
                num_str = '0' + num_str
            odd = num_str[1::2]
            even = num_str[0::2]
            result = ''
            for index in range(len(odd)):
                result += odd[index]
                result += even[index]
    
            return int('0b' + result, 2)
    

    提交

    可以可以

    看到超过了100%的人,还是很开心的啊

    // END 单元测试的重要性啊,好多次都是错在0, 1 或None的错误中。

    相关文章

      网友评论

        本文标题:配对交换

        本文链接:https://www.haomeiwen.com/subject/irlgehtx.html