IPv6 地址是一个 128 位的数字,为方便起见,这个地址被记录在一个 16 进制块中,被冒号分成 8 个块。例如 0124:5678:90ab:cdef:0124:5678:90ab:cdef
就是一个 IPv6 的正确压缩的例子。我们称其为 IPv6 地址的完整形式。有时,我们又要缩写这样的 IPv6 地址。有很多方式可以缩写地址,例如删除前导 0 (例如a56f:00d3:0000:0124:0001:f19a:1000:0000
→ a56f:d3:0:0124:01:f19a:1000:00
,当然还有其他方法删除这个 IPv6 地址的前导 0 )、缩写连续 0 序列(例如a56f:00d3:0000:0124:0001:0000:0000:0000
→ a56f:00d3:0000:0124:0001::
,缩写后的连续 0 序列用 :: 双冒号表示,注意每个 IPv6 地址只能用一次 :: )。这样缩写之后的 IPv6 地址称为 IPv6 地址的缩写形式。现在给出 n 个 IPv6 地址的缩写形式,请你把其完整形式还原并输出。
输入第一行一个正整数 n (1⩽n⩽100) ,随后 n 行,每行一个字符串,表示被缩写过后的 IPv6 地址,保证只包含 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,: 十七个字符。
对于每个字符串,输出一行,表示对应的 IPv6 地址的完整形式。
源码:
$\text{IPv6}$ 地址是一个 $128$ 位的数字,为方便起见,这个地址被记录在一个 $16$ 进制块中,被冒号分成 $8$ 个块。例如 `0124:5678:90ab:cdef:0124:5678:90ab:cdef` 就是一个 $\text{IPv6}$ 的正确压缩的例子。我们称其为 $\text{IPv6}$ 地址的完整形式。有时,我们又要缩写这样的 $\text{IPv6}$ 地址。有很多方式可以缩写地址,例如删除前导 $0$ (例如`a56f:00d3:0000:0124:0001:f19a:1000:0000` $\rightarrow$ `a56f:d3:0:0124:01:f19a:1000:00` ,当然还有其他方法删除这个 $\text{IPv6}$ 地址的前导 $0$ )、缩写连续 $0$ 序列(例如`a56f:00d3:0000:0124:0001:0000:0000:0000` $\rightarrow$ `a56f:00d3:0000:0124:0001::`,缩写后的连续 $0$ 序列用 $::$ 双冒号表示,注意每个 $\text{IPv6}$ 地址只能用一次 $::$ )。这样缩写之后的 $\text{IPv6}$ 地址称为 $\text{IPv6}$ 地址的缩写形式。现在给出 $n$ 个 $\text{IPv6}$ 地址的缩写形式,请你把其完整形式还原并输出。
输入第一行一个正整数 $n~(1 \leqslant n\leqslant 100)$ ,随后 $n$ 行,每行一个字符串,表示被缩写过后的 $\text{IPv6}$ 地址,保证只包含 $\text{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,:}$ 十七个字符。
对于每个字符串,输出一行,表示对应的 $\text{IPv6}$ 地址的完整形式。
请求将原翻译撤下。