题目:​​原题链接​(简单)

标签:位运算

解法

时间复杂度

空间复杂度

执行用时

Ans 1 (Python)

O ( l o g N )

O ( 1 )

40ms (65.79%)

Ans 2 (Python)

Ans 3 (Python)

解法一:

class Solution:
def ipToCIDR(self, ip: str, n: int) -> List[str]:
# 将IP转换为数值
start = 0
for x in ip.split("."):
start = start * 256 + int(x)

ans = []

while n > 0:
mask = min((start & -start), n).bit_length()
if mask == 0:
mask += 1
ans.append(".".join(str((start >> i) % 256) for i in (24, 16, 8, 0)) + "/" + str(33 - mask))
start += 1 << (mask - 1)
n -= 1 << (mask - 1)

return ans