1
归一化我的决策图
编写处理文本块并返回新文本的函数或程序。最小的有效程序获胜。 文本块中的每一行将具有以下格式: 12:34,56 第一个数字是行ID,其他两个逗号分隔的数字是对其他行的引用。 在输入文本中,数字可以是大于或等于0的任何整数。所有数字将以ASCII编码的十进制表示,且不带前导零。不会有重复的行ID。尽管可能存在未引用的行ID,但不会引用不存在的行ID。 在输出文本中,编号最小的行将移至文本块的开头,并重新编号为0。对此行的所有引用也必须更新。该行上的第一个引用必须为0或1。如果第一个引用为1,则第二个引用只能为2。否则,它必须为0或1。 所有行必须按升序,升序排列(没有跳过的数字)。如果先前已有对第n-1行的引用或当前行ID为n,则只能对第n行进行引用。除第0行外,不得存在所有未由低行ID引用的行。必须在最终输出之前删除所有此类行。 您可以假设输入文本始终采用正确的格式。 测试输入1: 45:73,24 78:24,78 89:24,73 73:45,3 72:3,24 3:24,24 24:3,89 重新排序: 3:24,24 24:3,89 89:24,73 73:45,3 45:73,24 78:24,78 72:3,24 重新编号: 0:1,1 1:0,2 2:1,3 3:4,0 4:3,1 78:1,78 72:0,1 删除未引用的行以最终输出: 0:1,1 1:0,2 2:1,3 3:4,0 4:3,1 当然,您的程序不必遵循此顺序,只需产生正确的输出即可。输出必须是单个文本块或您所用语言中最接近的等价文本,即没有直接字符输出。您可以返回它(首选),也可以直接输出整个块。假设您的输出将传递给另一个函数或程序。 测试输入2 5:2,3 7:3,2 2:4,2 4:2,3 3:4,3 输出: 0:1,0 1:0,2 2:1,2 测试输入#3 …
11
code-golf