#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| 表示输入数据的长度,则:

  • 对于 30%30\% 的数据,满足 2 ≤ |s| ≤ 10
  • 对于 60%60\% 的数据,满足 2 ≤ |s| ≤ 2000
  • 对于 100%100\% 的数据,满足 2 ≤ |s| ≤ 300000