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
网友评论