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)

        
相关推荐
午彦琳8 分钟前
2026.9.17
数据结构·算法·leetcode
ClinicTech11 分钟前
实验室洗瓶机的清洗系统架构与自动化控制解析
java·python
洋洋不叫杨杨17 分钟前
Codex 实战:用 AI 写运维脚本
大数据·python
高级程序源25 分钟前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
木井巳30 分钟前
【记忆化搜索】不同路径
java·算法·leetcode·深度优先·剪枝·推荐算法
wno7041 小时前
Spring Security短信验证码登录
java·python·spring
泡泡鱼(敲代码中)1 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
别动我齐刘海1 小时前
ROS2 Jazzy + C++ 实战路线——基础学习2
c++·人工智能·vscode·python·学习·机器学习·机器人
AR-26710-1 小时前
Linux Day7——建组/用户、umask、Python脚本
linux·python
怕浪猫2 小时前
从 Windows 换到 Mac 三个月,我真香了
算法·面试·架构