leetcode:面试题 05.07. 配对交换(python3解法)

难度:简单

配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。

示例1:

复制代码
 输入:num = 2(或者0b10)
 输出 1 (或者 0b01)

示例2:

复制代码
 输入:num = 3
 输出:3

提示:

  1. num的范围在0, 2\^30 - 1之间,不会发生整数溢出。

题解:

python 复制代码
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)

        
相关推荐
Doubbbbbbble云12 小时前
算法优化中的数学建模与理论界限分析4
算法·数学建模
benchmark_cc12 小时前
批量行情返回后,怎样把请求失败的股票和正常数据分开?
python·数据分析·pandas·量化交易·股票数据·quantdash
垆边人似月.12 小时前
华为机考题:字符个数统计
数据结构·算法·华为
en.en..12 小时前
Linux 进程退出exit(函数)
java·开发语言·算法
All for pursuit.13 小时前
【回溯-2】22.括号生成
数据结构·c++·算法·leetcode
y = xⁿ13 小时前
关于Agent工程落地
前端·人工智能·python
longlongzihan13 小时前
LeetCode 1004.最大连续1的个数III 滑动窗口及动态规划题解
c++·算法·leetcode·dp·滑动窗口
朝朝辞暮i13 小时前
C++ 第 22 课:const —— 不允许随便修改的数据
开发语言·c++·算法
小小张说故事13 小时前
pip 安装慢、超时、报错?一份国内源配置 + 9 个高频报错对照表
python
在世修行13 小时前
干货:长任务反馈
python·长任务