#1207. 符号译码
符号译码
题目描述
在密码学和信息编码的实验课上,小朱设计了一套独特的标点符号编码系统。这套系统旨在将常见的标点符号转化为简洁的二进制序列,以方便信息的加密传输和存储。经过反复测试,小朱发现该编码系统具有良好的唯一性和稳定性,即每一个合法的二进制序列都能唯一对应一个标点符号序列。现在,他需要编写一个程序来实现编码序列的逆向解析,将接收到的二进制序列还原为原始的标点符号。
小朱设计的标点符号编码规则如下:
[的编码为010]的编码为101<的编码为00>的编码为11+的编码为011-的编码为100
根据上述规则,任意长度的标点符号序列都能被编码成对应的 01 序列。例如,标点符号序列 ++>[-<] 经过编码后会变成 0110111101010000101。
现在给定一个符合编码规则的 01 序列,请编写程序将其还原为对应的标点符号序列。可以确定的是,输入的 01 序列一定是合法编码,且仅对应唯一一种标点符号序列。
输入格式
一行 01 序列,表示经过编码后的输入数据。
输出格式
一行标点符号序列,表示输入 01 序列还原后的结果。
样例
0110111101010000101
++>[-<]
样例解释1
011对应+011对应+11对应>010对应[100对应-00对应<101对应]- 所以输出为
++>[-<]
0011010100
<>[-
样例解释2
00对应<11对应>010对应[100对应-- 所以输出为
<>[-
数据范围
设 |s| 表示输入数据的长度,则:
- 对于 的数据,满足
2 ≤ |s| ≤ 10 - 对于 的数据,满足
2 ≤ |s| ≤ 2000 - 对于 的数据,满足
2 ≤ |s| ≤ 300000