leetcode:面试题 05.07. 配对交换(python3解法)
难度:简单
配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。
示例1:
输入:num = 2(或者0b10) 输出 1 (或者 0b01)示例2:
输入:num = 3 输出:3提示:
num
的范围在[0, 2^30 - 1]之间,不会发生整数溢出。题解:
class Solution: def exchangeBits(self, num: int) -> int: if num == 1: return 2 n = bin(num).split('b')[1] list_n = list(n) if len(n) % 2 == 1: list_n = ['0'] + list_n for i in range(0,len(list_n)-1,2): list_n[i],list_n[i+1] = list_n[i+1],list_n[i] return int("".join(['0b']+list_n),2)