Python算法-进制转换

168. Excel表列名称

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
例如:

A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...

# 26 进制
class Solution:
    def convertToTitle(self, columnNumber: int) -> str:
        res = ''
        while columnNumber:
            columnNumber, y = divmod(columnNumber, 26)   # 求商、取余
            if y == 0:
                columnNumber -= 1
                y = 26
            res = chr(y + 64) + res
            # print(res)
        return res
171. Excel 表列序号

给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。
例如:

A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...

class Solution:
    def titleToNumber(self, columnTitle: str) -> int:
        ret = 0
        for i in columnTitle:
            ret = ret * 26 + ord(i) - 64
        return ret
190. 颠倒二进制位

输入:n = 00000010100101000001111010011100
输出:964176192 (00111001011110000010100101000000)
解释:输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
因此返回 964176192,其二进制表示形式为:
00111001011110000010100101000000。

# # 列表元素反转
class Solution:
    def reverseBits(self, n: int) -> int:
        n = '{:032b}'.format(n)    # 转为字符串
        # print(type(n))
        n = n[::-1]
        return int(n,2)
# # 位运算
# 每次把 res 左移,把 n 的二进制末尾数字,拼接到结果 res 的末尾。然后把 n 右移。
class Solution:
    def reverseBits(self, n: int) -> int:
        res = 0
        for i in range(32):
            res = (res << 1) | (n & 1)
            n >>= 1
        return res
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容