| 问题描述 |
|---|
在星际探索工程中,地球指挥中心接收到了来自深空探测器传回的一段单行日志数据。由于宇宙射线的干扰,这段纯文本日志中混入了大量的不规则噪点。你被任命为通信部的首席工程师,负责编写一个解析器,根据严格的星际通信协议,从混乱的文本中还原出有意义的指令流。 星际通信协议的具体规则如下: 1. 指令定界: 所有有效指令始终被包裹在双字符定界符 "<{"(起始)和 "}>"(结束)之中。 定界符不支持嵌套。在成功匹配到 "<{" 进入指令内部后,遇到 "}>" 之前出现的任何 "<{" 都被视为普通字符,原样保留。 定界符外部的所有字符均为噪点,直接忽略。 2. 转义机制: 在指令内部,符号 "\" 是唯一的转义触发符。 连续两个反斜杠 "\\" 代表一个实际的普通反斜杠 "\"。 特殊序列 "\N" 代表空指令前缀。若一条指令的原始序列(定界符内部)中包含 "\N",则该整条指令视为无效,必须被直接抛弃,不予输出。 任何其他形式的 "\" 后跟字符均保留原样(例如 "\A" 解析为 "\A",单独出现在末尾紧跟 "}>" 的 "\" 解析为普通的 "\")。 3. 辐射卡顿压缩: 在指令内部,如果出现连续的三个或以上相同的英文字母(大小写不敏感,即 'A' 与 'a' 视为相同),必须将其压缩为两个该字母,且必须严格保留该序列前两个字符的原始大小写形态。例如:"AaaA" 压缩为 "Aa";"bbB" 压缩为 "bb"。 非英文字母的连续出现不触发此规则。 4. 高危指令判定: 若一条指令经过上述规则解析、压缩后,其最终的有效字符串长度 $$L$$ 为质数,则该指令属于“高危指令”。输出时,必须在其有效内容的末尾自动追加一个空格与 "[HIGH RISK]" 标记。
|
| 输入描述 |
输入只由一行纯文本组成。文本的最大长度不超过 $$10^6$$ 个字符。该行文本中可能包含零条、一条或多条指令,所有字符均为可打印的 ASCII 字符。 |
| 输出描述 |
按照指令在文本中出现的先后顺序,将成功解析且未被丢弃的有效指令每行输出一条。 若是高危指令,请在指令末尾附加 " [HIGH RISK]"(注意:标记前有一个空格)。 如果在整个文本中没有解析出任何一条有效指令,请直接输出一行固定的警告信息:"VOID SIGNAL"。
|
| 样例输入复制样例 |
abc<{ProcessStart}>def<{MsgSent}>ghi<{Reeetry}>jkl<{Log\\1}>mno |
| 样例输出 |
Processtart [HIGH RISK] MsgSent [HIGH RISK] Reetry Log\1 [HIGH RISK] |
| 提示说明 |
样例解释: "<{ProcessStart}>":遇到连续 3 个字母( "s"、"s"、"S")发生卡顿,压缩为 "ss"。解析为 "Processtart",长度为 11(质数),追加高危标记。 "<{MsgSent}>":解析为 "MsgSent",长度为 7(质数),追加高危标记。 "<{Reeetry}>":遇到连续 3 个字母 "e" 发生卡顿,压缩为 2 个 "e"。解析为 "Reetry",长度为 6(非质数)。 "<{Log\\1}>":内部的 "\\" 被转义为 "\"。解析为 "Log\1",长度为 5(质数),追加高危标记。
|
| 相关 |