讨论/技术交流/IPV6简化写法字符串还原为完整写法字符串/
IPV6简化写法字符串还原为完整写法字符串

简介

实现将ipv6简化表示的字符串还原为标准写法字符串。
例如:
2409:8900::1:231:3a4
还原后 2409:8900:0000:0000:0000:0001:0231:03a4

2409:8900:3:2:1211:1:22:643a
还原后2409:8900:0003:0002:1211:0001:0022:643a

要求在时间复杂度O(N)内。

共 3 个回复

有问题或者改进的话欢迎评论~

def recoverIPv6(shortenedIPv6: str) -> str:
    splitResult = shortenedIPv6.split(':')
    idx = 0
    originIPv6 = list()
    while idx < len(splitResult) and splitResult[idx] != '':
        originIPv6.append(splitResult[idx].zfill(4))
        idx += 1
    while idx < len(splitResult) and splitResult[idx] == '':
        idx += 1
    while len(originIPv6) + len(splitResult) - idx < 8:
        originIPv6.append('0000')
    while idx < len(splitResult):
        originIPv6.append(splitResult[idx].zfill(4))
        idx += 1
    return ':'.join(originIPv6)
1

理论上是的..

这份代码是半年前写的了,回头看了一下有诸多纰漏..

重新写了个新的算法,感觉会简洁清晰一些。

第一个循环是不是可以换成只检测最后两个元素和前面两个元素