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)

        
相关推荐
李昊哲小课6 分钟前
NumPy 完整学习笔记
笔记·python·学习·数据分析·numpy
理性的曜11 分钟前
AI语音通话系统设计思路:从语音输入到智能回复
人工智能·python·websocket·fastapi
专业发呆业余科研12 分钟前
深度反思不变学习:当 EIIL 失效时,如何通过“偏见诱导”重建环境标签?
人工智能·python·深度学习·神经网络·机器学习
董董灿是个攻城狮17 分钟前
大模型连载8:词向量如何表示近义词?
人工智能·python·算法·机器学习
阿钱真强道20 分钟前
08 Python 数据分析:学生画像匹配与相似度计算
python·机器学习·数据分析·pandas·推荐系统·相似度计算·文本分析
Jasmine_llq21 分钟前
《B4001 [GESP202406 一级] 立方数》
算法·单输入处理·整数算术运算·立方数枚举验证算法(核心逻辑)·循环终止优化算法·状态标记算法·三元运算符输出
2401_8535765022 分钟前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
IT 行者30 分钟前
Claude Code Viewer: 打造 Web 端 Claude Code 会话管理利器
前端·人工智能·python·django
芸忻30 分钟前
day 13 第六章 二叉树 part01代码随想录算法训练营71期
数据结构·算法
2401_9001515432 分钟前
C++中的桥接模式
开发语言·c++·算法