出个题

出个题

把一串不定长编码变成定长编码,序列如下。编码使用自然序列(见右边编码示例),要求程序输出与示例同。
编码规则:
首个元码长度只有1位的编码为[a],其余为[a+1],[a+2]……[a+x]
元码长度2位且含已有1位元码的编码为[a].
元码长度2位且含已有1位元码且不同于上一个2位元码的编码为[a].[b+1],[a].[b+2]……[a].[b+x]
以此类推。。。。


A            01
A1          01.01
A11        01.01.01
A119      01.01.01.01
A12        01.01.02
A121      01.01.02.01
A122      01.01.02.02
B            02
B1          02.01
B11        02.01.01
B121      02.01.02
B123      02.01.03
B2          02.02
B21        02.02.01
C            03
C1          03.01
C11        03.01.01
C12        03.01.02
C22        03.02
C221      03.02.01
C222      03.02.02
C2231    03.02.03

dict1 = {'a':'01','b':'02','c':'03','c1':'01.01','b1':'02.01','c1':'03.01','c2':'03.02'}
a=dict1.keys()
a.sort()
for key in a:
    print ' %-5s,%-8s'%(key,dict1[key])
建立词典的办法行不通。因为元素是未知的,所以没办法事先对应起来。我据的例子只不过是为了说明编码规则,并不是这种关系已经存在。
本来是不需要描述的,看了示例还不明白规则的想必也是解不出题的。好吧,明确地描述了编码规则,请小学生们也来解答吧