1判断一个编码是不是前缀编码,可以根据定义,即看每个字符的编码是不是和其他字符编码的前边的数字一样。2我们要挨个判断每个字符,从a开始。a的编码为0,只有一个数字。那么在b,c,d的编码中从前往后看一个数字分为1,1,1。1不等于0。则a的编码符合前缀编码要求。3然后判断b的编码是否是其他字母的编码的前缀。b的编码10明显不是c,d编码的前缀,所以b的编码符合前缀编码要求。4接下来判断c的编码。c编码为110,明显不是一位编码和两位编码的前缀。对于d编码111来说,从前到后并不包含110。所以c的编码符合前缀编码要求。5最后判断d的编码。同理,c编码从左数的头三个数字都不等于111,那两个连位数都不够的编码就更甭提了。所以d的编码符合前缀编码要求。最终,这四个编码属于前缀编码。6下面来练一个例子:(0,1,00,11)(000,001,010,101)(00,01,10,11)哪个不是前缀编码?明显第一个不是。 end 20210311