4
爱丽丝的序数格式
介绍 爱丽丝(Alice)是马丁·恩德(Martin Ender)的一种二维语言,具有两种不同的执行模式:基数和序数。当指令指针通过一面镜子(/或\)时,它会从一种模式切换到另一种模式。 在此挑战中,我们将重点关注顺序模式,在命令模式下,命令对字符串进行操作,并且指令指针沿对角线移动,并在代码边缘跳动。 可以以非常紧凑的样式编写仅以序数模式运行的简单程序,如以下示例所示: /fbd/ @aec\ 在这里,IP在基数模式启动从所述第一小区去东,通过第一反射镜,并开始对角移动和跳动,执行命令a,b和c。然后,它遇到了东北镜这使得南下向其他镜像,然后开始反弹向西走回来,遇到命令d,e,f,最后@,终止程序。 这种结构非常紧凑,但是编写和维护起来并不容易(添加单个命令可能会迫使我们对大多数代码进行重新排序!),因此,我希望您能帮助我进行格式化。 任务 给定一个命令序列,其中每个命令是一个可打印的ASCII字符,请在两行上对其重新排序,以便可以从第二行的第一个字符开始读取该序列的前半部分,然后始终向右斜移,而后半部分则可以从右到左读取其余字符。不用担心镜子和终止符号,我会自己添加它们。 因此,例如,给定输入,abcdef您应该输出 fbd aec 如果输入的长度是奇数,则只要遇到的命令顺序保持不变,就应该在任何地方添加一个空格(在Alice中为noop)。您也可以选择输出两行长度相差一个字符的字符,在这种情况下,较短的行被认为在末尾有一个空格。 规则 这是 代码高尔夫球,最短答案(以字节为单位)获胜! 您可以通过任何默认的输入/输出方法来输入/输出 输入由一行可打印的ASCII字符组成 输出中允许使用一条尾随换行符 当作为Alice程序运行时,程序的某些输出可能没有完全正确的行为(例如,如果在字符串文字中插入了填充空间)。您不必担心这些情况 禁止出现标准漏洞 测试用例 --Input abcdef --Output fbd aec --Input 123 --Output 2 13 OR 31 2 OR 3 12 OR 32 1 --Input O --Output O OR O --Input …