#29747. 【模拟】消息解密

【模拟】消息解密

题目描述:

加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为[乱码]传送,到达目的地后再用相同或不同的手段还原(解密)。

现在有一加密好的信息需要解密,这段信息包括一个文本串s和一个数字串p。其中文本串记录了所有可用的字符集。数字串为一段二进制编码,仅由0和1两种数字组成。

数字串中包含多个部分,每个部分以一个标准3位二进制数开始,表示这个部分的信息长度l,之后接着是若干个长度为l的[信息内容],每部分信息内容以连续l个1作为结束,数字串最终以000结束。例如数字串[00101011100110111000]表示第一部分信息长度为[001]对应的二进制数1,信息内容只有一个0,以1作为这部分信息的结束符。第二部分信息长度为[011]对应的二进制数3,信息内容为[100110],以111作为这部分信息的结束符。最后000表示数字串结束。

其中[信息内容]并不是标准的二进制数,观察数列0, 00, 01, 10, 000, 001, 010, 011, 100, 101, 110, 0000, 0001, . . . , 1011, 1110, 00000, . . . 数字位于数列第几个,那么这个数字就代表了几,例如00排在第二个,所以00代表2,注意,数列中并没有每位都是1的情况。

按上述规则,数字串可以转换为一段新的数字,例如[00101011100110111000]可以转换为[1,9,11],其对应了文本串中的相应字符,当文本串为"TheLastOfUs"时,对应了第1,9,11个字符。

给定文本串和数字串,请解密

输入格式:

两行,第一行为文本串s,仅包含小写字母,第二行为数字串p,仅包含0和1

0<|s|、|p|<=1000

输出格式:

一行,解密后的字符串

样例:

TheLastOfUs
00101011100110111000
Tfs

提示