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)

        
相关推荐
Delightrs12 小时前
Rust LeetCode238 算法题解
开发语言·算法·rust
特立独行的猫A13 小时前
cj-tauri:用仓颉写桌面与鸿蒙 PC 应用
java·后端·python
自信1504130575913 小时前
重生之从0开始学习c++之——vector-中篇
c++·学习·算法
文丑颜不良啊13 小时前
LeetCode2501~2520题目解析
java·leetcode
qq_1588954111121 小时前
AI 音乐生成完成后,音频 URL 为什么会过期?一套可恢复的交付方案
python·api·ai音乐
Warson_L1 天前
高性能架构设计
python·go
databook1 天前
新数据到手,先跑哪几步检查
python·数据分析
GoAI1 天前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
czq_26867194871 天前
Python打卡第46天
开发语言·python