解答:
一、解码过程:(备注:C(b)表示空格)
(1)<o,l,c>=<0,0,3> 因为C(r)=3 所以首位字母编码是:r 字母序列是:r
(2)<o,l,c>=<0,0,1> 因为C(a)=1 所以增加的字母编码是:a 字母序列是:ra
(3)<o,l,c>=<0,0,4> 因为C(t)=4 所以增加的字母编码是:t 字母序列是:rat
(4)<o,l,c>=<2,8,2> 因为C(b)=2 所以增加的字母编码是:atatatatb 字母序列是:ratatatatatb
(5)<o,l,c>=<3,1,2> 因为C(b)=2 所以增加的字母编码是:ab 字母序列是:ratatatatatbab
(6)<o,l,c>=<0,0,3> 因为C(r)=3 所以增加的字母编码是:r 字母序列是:ratatatatatbabr
(7)<o,l,c>=<6,4,4> 因为C(t)=4 所以增加的字母编码是:atbat 字母序列是:ratatatatatbabratbat
(8)<o,l,c>=<9,5,4> 因为C(t)=4 所以增加的字母编码是:babrat 字母序列是:ratatatatatbabratbatbabrat
综上所诉,将C(b)转换为空格,所得的解码序列是:ratatatatat a rat at a rat
二、编码过程:
已知:1、字母序列是:ratatatatat a rat at a rat 2、W=20 S=10 3、C(a)=1 C( )=2 C(r)=3 C(t)=4
(1)|ratatatatat a rat at a rat 对于r 无匹配字符串 发送<0,0,C(r)>
(2)r|atatatatat| a rat at a rat 对于a 无匹配字符串 发送<0,0,C(a)>
(3)ra|tatatatat |a rat at a rat 对于t 无匹配字符串 发送<0,0,C(t)>
(4)rat|atatatat a| rat at a rat 对于atatatat 发送<2,8,C( )>
(5)ra|tatatatat |a rat at a| rat 对于a 发送<3,1,C( )>
(6)rata|tatatat a |rat at a r|at 对于r 无匹配字符串 发送<0,0,C(r)>
(7)ratat|atatat a r|at at a ra|t 对于at a 发送<6,4,C(t)>
(8)ratatatata|t a rat at| a rat | 对于 a ra 发送<9,5,C(t)>//提问:此处能否是<9,6,C(t)>?
综上所诉,编码序列是:<0,0,3><0,0,1><0,0,4><2,8,2><3,1,2><0,0,3><6,4,4><9,5,4>
一、解码过程:
输入:4,5,3,1,2,8,2,7,9,7,4
输出:THIS IS HIS HIT
字典 | ||||
索引 | 条目 | 输入 | 模式 | 输出 |
1 | S | |||
2 | 空格 | |||
3 | I | |||
4 | T | |||
5 | H | |||
4 | T | |||
6 | TH | -5 | TH | T |
7 | HI | --3 | HI | H |
8 | IS | ---1 | IS | I |
9 | S | ----2 | S | S |
10 | IS | -----8 | IS | 空格 |
11 | IS | ------2 | IS | IS |
12 | HI | -------7 | HI | 空格 |
13 | HIS | --------9 | HIS | HI |
14 | S HI | ---------7 | S HI | S |
15 | HIT | ----------4 | HIT | HI |
T |