解释鱼(不,不是那条鱼)
考虑以下五个ASCII艺术海洋生物: 标准鱼:><>或<>< 快速鱼:>><>或<><< 健壮的鱼:><>>或<<>< 弹力鱼:><<<>或<>>>< 螃蟹: ,<..>, 编写一个接受任意字符字符串的程序<>,.。如果有一种方法可以将整个字符串解释为一系列不重叠的海洋生物,则应重新打印该字符串,并在生物之间插入单个空格。如果无法解释,则不输出任何内容(程序静默结束)。 例如,字符串<><><>可以解释为两个标准的鱼背对背。相应的输出为<>< ><>。 作为另一个示例,该字符串><>><>>包含...的“实例” (仅将括号添加为指示符) 几个标准鱼: [><>][><>]> 一条快鱼: ><[>><>]> 一个坚固的鱼在几个方面:[><>>]<>>和><>[><>>] 但是,只有标准鱼和坚固鱼的配对[><>][><>>]跨越了整个字符串,没有鱼共享字符(没有重叠)。因此,对应于的输出><>><>>为><> ><>>。 如果可以通过多种方式解释字符串,则可以打印其中任何一种。(并且仅打印其中之一。)例如,<><<<><可以解释为标准鱼和结实的鱼:[<><][<<><],或者解释为快速鱼和标准鱼:[<><<][<><]。因此,<>< <<><或者<><< <><将是有效的输出。 螃蟹只是为了好玩。由于它们不是以<或开头或结尾>,因此更容易识别(至少在视觉上)。例如,字符串 ,<..>,><<<>,<..>,><>,<..>,<>>><,<..>,><>>,<..>,<<><,<..>,<><,<..>,>><> 显然会产生输出 ,<..>, ><<<> ,<..>, ><> ,<..>, <>>>< ,<..>, ><>> ,<..>, <<>< ,<..>, <>< ,<..>, >><> 以下是一些不产生任何输出的字符串示例(每行一个): <><> ,<..>,<..>, >>><> ><<<<> , ><><> ,<><>, <<<><><<<>>><>><>><><><<>>><>><>>><>>><>><>><<>< 如果删除开头,则可以解析这里的最后一个字符串<: <<>< …