#P1056. IMMEDIATE DECODABILITY
IMMEDIATE DECODABILITY
描述
如果一组符号的编码中,没有一个符号的编码是另一个符号编码的前缀,那么这个编码被称为立即可解码的。对于这个问题,我们假设所有编码都是二进制的,一组编码中没有两个编码是相同的,每个编码至少有一位且最多有十位,并且每组编码至少有两个编码且最多有八个编码。
示例:假设一个字母表有符号 {A, B, C, D} 以下编码是立即可解码的: A:01 B:10 C:0010 D:0000 但下面这个编码不是立即可解码的: A:01 B:10 C:010 D:0000 (注意 A 的编码是 C 的编码的前缀)
输入
编写一个程序,从标准输入中接受一系列的记录组。每个记录组包含一组由 0 和 1 组成的记录,每个记录表示一个不同符号的二进制编码。每个记录组后面跟着一个单独的分隔记录,该分隔记录包含一个单独的数字 9;分隔记录不属于记录组。每个记录组相互独立;一个记录组中的编码与其他任何记录组中的编码无关(也就是说,每个记录组都要独立处理)。
输出
对于每个记录组,你的程序应该判断该记录组中的编码是否是立即可解码的,并应该打印出一行输出,给出记录组的编号,并说明该记录组是立即可解码的还是不是立即可解码的。
01
10
0010
0000
9
01
10
010
0000
9
Set 1 is immediately decodable
Set 2 is not immediately decodable
来源
太平洋西北地区 1998 年